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.



32684
32685
32686
32687
32688
32689
32690
32691
32692
32693
32694
32695
32696
32697
32698
32699
32700
32701
32702
32703
32704
32705
32706
32707
32708
32709
32710
32711
32712
32713
32714
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32684

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.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



32682
32683
32684
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32682

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



32720
32721
32722
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32720

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

#subtype_to_hashObject



32724
32725
32726
32727
32728
32729
32730
32731
32732
32733
32734
32735
32736
32737
32738
32739
32740
32741
32742
32743
32744
32745
32746
32747
32748
32749
32750
32751
32752
32753
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32724

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



32716
32717
32718
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32716

def to_json
  JSON.dump(to_hash)
end