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



33914
33915
33916
33917
33918
33919
33920
33921
33922
33923
33924
33925
33926
33927
33928
33929
33930
33931
33932
33933
33934
33935
33936
33937
33938
33939
33940
33941
33942
33943
33944
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33914

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.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



33912
33913
33914
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33912

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



33950
33951
33952
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33950

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

#subtype_to_hashObject



33954
33955
33956
33957
33958
33959
33960
33961
33962
33963
33964
33965
33966
33967
33968
33969
33970
33971
33972
33973
33974
33975
33976
33977
33978
33979
33980
33981
33982
33983
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33954

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



33946
33947
33948
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33946

def to_json
  JSON.dump(to_hash)
end