Class: Io::Flow::V0::Models::OrderUpserted

Inherits:
Event
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Instance Attribute Summary collapse

Attributes inherited from Event

#discriminator

Instance Method Summary collapse

Methods inherited from Event

from_json, #to_hash

Constructor Details

#initialize(incoming = {}) ⇒ OrderUpserted

Returns a new instance of OrderUpserted.



28984
28985
28986
28987
28988
28989
28990
28991
28992
28993
28994
28995
28996
28997
28998
28999
29000
29001
29002
29003
29004
29005
29006
29007
29008
29009
29010
29011
29012
29013
29014
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28984

def initialize(incoming={})
  super(:discriminator => Event::Types::ORDER_UPSERTED)
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:event_id, :timestamp, :organization, :number, :environment, :experience_id, :expires_at, :customer, :selections, :items, :destination, :deliveries, :prices, :total], 'OrderUpserted')
  @event_id = HttpClient::Preconditions.assert_class('event_id', opts.delete(:event_id), String)
  @timestamp = HttpClient::Preconditions.assert_class('timestamp', HttpClient::Helper.to_date_time_iso8601(opts.delete(:timestamp)), DateTime)
  @organization = HttpClient::Preconditions.assert_class('organization', opts.delete(:organization), String)
  @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String)
  @environment = HttpClient::Preconditions.assert_class('environment', opts.delete(:environment), String)
  @experience_id = HttpClient::Preconditions.assert_class('experience_id', opts.delete(:experience_id), String)
  @expires_at = HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:expires_at)), DateTime)
  @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x))
  @selections = HttpClient::Preconditions.assert_class('selections', opts.delete(:selections), Array).map { |v| HttpClient::Preconditions.assert_class('selections', v, String) }
  @items = HttpClient::Preconditions.assert_class('items', opts.delete(:items), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::LocalizedLineItem) ? x : ::Io::Flow::V0::Models::LocalizedLineItem.new(x)) }
  @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x))
  @deliveries = HttpClient::Preconditions.assert_class('deliveries', opts.delete(:deliveries), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Delivery) ? x : ::Io::Flow::V0::Models::Delivery.from_json(x)) }
  @prices = HttpClient::Preconditions.assert_class('prices', opts.delete(:prices), Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::OrderPriceDetail) ? x : ::Io::Flow::V0::Models::OrderPriceDetail.new(x)) }
  @order_id = (x = opts.delete(:order_id); x.nil? ? nil : HttpClient::Preconditions.assert_class('order_id', x, String))
  @payments = (x = opts.delete(:payments); x.nil? ? nil : HttpClient::Preconditions.assert_class('payments', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::OrderPayment) ? x : ::Io::Flow::V0::Models::OrderPayment.new(x)) })
  @discount = (x = opts.delete(:discount); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
  @delivered_duty = (x = opts.delete(:delivered_duty); x.nil? ? nil : HttpClient::Preconditions.assert_class('delivered_duty', x, String))
  @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::LocalizedTotal) ? x : ::Io::Flow::V0::Models::LocalizedTotal.new(x))
  @created_at = (x = opts.delete(:created_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
  @updated_at = (x = opts.delete(:updated_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('updated_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
  @submitted_at = (x = opts.delete(:submitted_at); x.nil? ? nil : HttpClient::Preconditions.assert_class('submitted_at', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
  @lines = (x = opts.delete(:lines); x.nil? ? nil : HttpClient::Preconditions.assert_class('lines', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::Line) ? x : ::Io::Flow::V0::Models::Line.new(x)) })
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
  @geo = (x = opts.delete(:geo); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderGeo) ? x : ::Io::Flow::V0::Models::OrderGeo.new(x)))
  @merchant_of_record = (x = (x = opts.delete(:merchant_of_record); x.nil? ? "flow" : x); x.is_a?(::Io::Flow::V0::Models::OrderMerchantOfRecord) ? x : ::Io::Flow::V0::Models::OrderMerchantOfRecord.apply(x))
  @tax_registration = (x = opts.delete(:tax_registration); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::TaxRegistration) ? x : ::Io::Flow::V0::Models::TaxRegistration.new(x)))
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



28982
28983
28984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28982

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



29020
29021
29022
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29020

def copy(incoming={})
  OrderUpserted.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming)))
end

#subtype_to_hashObject



29024
29025
29026
29027
29028
29029
29030
29031
29032
29033
29034
29035
29036
29037
29038
29039
29040
29041
29042
29043
29044
29045
29046
29047
29048
29049
29050
29051
29052
29053
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29024

def subtype_to_hash
  {
    :event_id => event_id,
    :timestamp => timestamp,
    :organization => organization,
    :number => number,
    :environment => environment,
    :experience_id => experience_id,
    :expires_at => expires_at,
    :customer => customer.to_hash,
    :selections => selections,
    :items => items.map { |o| o.to_hash },
    :destination => destination.to_hash,
    :deliveries => deliveries.map { |o| o.to_hash },
    :prices => prices.map { |o| o.to_hash },
    :order_id => order_id,
    :payments => payments.nil? ? nil : payments.map { |o| o.to_hash },
    :discount => discount.nil? ? nil : discount.to_hash,
    :delivered_duty => delivered_duty,
    :total => total.to_hash,
    :created_at => created_at,
    :updated_at => updated_at,
    :submitted_at => ,
    :lines => lines.nil? ? nil : lines.map { |o| o.to_hash },
    :attributes => attributes.nil? ? nil : attributes,
    :geo => geo.nil? ? nil : geo.to_hash,
    :merchant_of_record => merchant_of_record.value,
    :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash
  }
end

#to_jsonObject



29016
29017
29018
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 29016

def to_json
  JSON.dump(to_hash)
end