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.



25374
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25374

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)) }
  @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 })
end

Instance Attribute Details

#attributesObject (readonly)

Returns the value of attribute attributes.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def attributes
  @attributes
end

#created_atObject (readonly)

Returns the value of attribute created_at.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def created_at
  @created_at
end

#customerObject (readonly)

Returns the value of attribute customer.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def customer
  @customer
end

#delivered_dutyObject (readonly)

Returns the value of attribute delivered_duty.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def delivered_duty
  @delivered_duty
end

#deliveriesObject (readonly)

Returns the value of attribute deliveries.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def deliveries
  @deliveries
end

#destinationObject (readonly)

Returns the value of attribute destination.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def destination
  @destination
end

#discountObject (readonly)

Returns the value of attribute discount.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def discount
  @discount
end

#environmentObject (readonly)

Returns the value of attribute environment.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def environment
  @environment
end

#event_idObject (readonly)

Returns the value of attribute event_id.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def event_id
  @event_id
end

#experience_idObject (readonly)

Returns the value of attribute experience_id.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def experience_id
  @experience_id
end

#expires_atObject (readonly)

Returns the value of attribute expires_at.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def expires_at
  @expires_at
end

#itemsObject (readonly)

Returns the value of attribute items.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def items
  @items
end

#linesObject (readonly)

Returns the value of attribute lines.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def lines
  @lines
end

#numberObject (readonly)

Returns the value of attribute number.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def number
  @number
end

#organizationObject (readonly)

Returns the value of attribute organization.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def organization
  @organization
end

#paymentsObject (readonly)

Returns the value of attribute payments.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def payments
  @payments
end

#pricesObject (readonly)

Returns the value of attribute prices.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def prices
  @prices
end

#selectionsObject (readonly)

Returns the value of attribute selections.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def selections
  @selections
end

#submitted_atObject (readonly)

Returns the value of attribute submitted_at.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def 
  @submitted_at
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def timestamp
  @timestamp
end

#totalObject (readonly)

Returns the value of attribute total.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def total
  @total
end

#updated_atObject (readonly)

Returns the value of attribute updated_at.



25372
25373
25374
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25372

def updated_at
  @updated_at
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



25406
25407
25408
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25406

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

#subtype_to_hashObject



25410
25411
25412
25413
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
25435
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25410

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 },
    :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
  }
end

#to_jsonObject



25402
25403
25404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 25402

def to_json
  JSON.dump(to_hash)
end