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.



30676
30677
30678
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
30697
30698
30699
30700
30701
30702
30703
30704
30705
30706
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30676

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.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



30674
30675
30676
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30674

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



30712
30713
30714
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30712

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

#subtype_to_hashObject



30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
30732
30733
30734
30735
30736
30737
30738
30739
30740
30741
30742
30743
30744
30745
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30716

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



30708
30709
30710
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30708

def to_json
  JSON.dump(to_hash)
end