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



41586
41587
41588
41589
41590
41591
41592
41593
41594
41595
41596
41597
41598
41599
41600
41601
41602
41603
41604
41605
41606
41607
41608
41609
41610
41611
41612
41613
41614
41615
41616
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41586

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.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



41584
41585
41586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41584

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



41622
41623
41624
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41622

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

#subtype_to_hashObject



41626
41627
41628
41629
41630
41631
41632
41633
41634
41635
41636
41637
41638
41639
41640
41641
41642
41643
41644
41645
41646
41647
41648
41649
41650
41651
41652
41653
41654
41655
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41626

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



41618
41619
41620
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41618

def to_json
  JSON.dump(to_hash)
end