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.



41738
41739
41740
41741
41742
41743
41744
41745
41746
41747
41748
41749
41750
41751
41752
41753
41754
41755
41756
41757
41758
41759
41760
41761
41762
41763
41764
41765
41766
41767
41768
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41738

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.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



41736
41737
41738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41736

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



41774
41775
41776
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41774

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

#subtype_to_hashObject



41778
41779
41780
41781
41782
41783
41784
41785
41786
41787
41788
41789
41790
41791
41792
41793
41794
41795
41796
41797
41798
41799
41800
41801
41802
41803
41804
41805
41806
41807
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41778

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



41770
41771
41772
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41770

def to_json
  JSON.dump(to_hash)
end