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.



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
41617
41618
41619
41620
41621
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41591

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.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



41589
41590
41591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41589

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



41627
41628
41629
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41627

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

#subtype_to_hashObject



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
41656
41657
41658
41659
41660
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 41631

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



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

def to_json
  JSON.dump(to_hash)
end