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.



41685
41686
41687
41688
41689
41690
41691
41692
41693
41694
41695
41696
41697
41698
41699
41700
41701
41702
41703
41704
41705
41706
41707
41708
41709
41710
41711
41712
41713
41714
41715
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41685

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::OrderCustomer) ? x : ::Io::Flow::V0::Models::OrderCustomer.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 = opts.delete(:merchant_of_record); x.nil? ? nil : (x = 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.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



41683
41684
41685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41683

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



41721
41722
41723
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41721

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

#subtype_to_hashObject



41725
41726
41727
41728
41729
41730
41731
41732
41733
41734
41735
41736
41737
41738
41739
41740
41741
41742
41743
41744
41745
41746
41747
41748
41749
41750
41751
41752
41753
41754
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41725

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.nil? ? nil : merchant_of_record.value,
    :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash
  }
end

#to_jsonObject



41717
41718
41719
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41717

def to_json
  JSON.dump(to_hash)
end