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.



31598
31599
31600
31601
31602
31603
31604
31605
31606
31607
31608
31609
31610
31611
31612
31613
31614
31615
31616
31617
31618
31619
31620
31621
31622
31623
31624
31625
31626
31627
31628
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31598

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 = 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.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



31596
31597
31598
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31596

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



31634
31635
31636
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31634

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

#subtype_to_hashObject



31638
31639
31640
31641
31642
31643
31644
31645
31646
31647
31648
31649
31650
31651
31652
31653
31654
31655
31656
31657
31658
31659
31660
31661
31662
31663
31664
31665
31666
31667
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31638

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



31630
31631
31632
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31630

def to_json
  JSON.dump(to_hash)
end