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.



54438
54439
54440
54441
54442
54443
54444
54445
54446
54447
54448
54449
54450
54451
54452
54453
54454
54455
54456
54457
54458
54459
54460
54461
54462
54463
54464
54465
54466
54467
54468
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54438

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.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def expires_at
  @expires_at
end

#geoObject (readonly)

Returns the value of attribute geo.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def geo
  @geo
end

#itemsObject (readonly)

Returns the value of attribute items.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def lines
  @lines
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def merchant_of_record
  @merchant_of_record
end

#numberObject (readonly)

Returns the value of attribute number.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def number
  @number
end

#order_idObject (readonly)

Returns the value of attribute order_id.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def order_id
  @order_id
end

#organizationObject (readonly)

Returns the value of attribute organization.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def 
  @submitted_at
end

#tax_registrationObject (readonly)

Returns the value of attribute tax_registration.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def tax_registration
  @tax_registration
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



54436
54437
54438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54436

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



54474
54475
54476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54474

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

#subtype_to_hashObject



54478
54479
54480
54481
54482
54483
54484
54485
54486
54487
54488
54489
54490
54491
54492
54493
54494
54495
54496
54497
54498
54499
54500
54501
54502
54503
54504
54505
54506
54507
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54478

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



54470
54471
54472
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 54470

def to_json
  JSON.dump(to_hash)
end