Class: Io::Flow::V0::Models::Order
- Inherits:
-
ExpandableOrder
- Object
- ExpandableOrder
- Io::Flow::V0::Models::Order
- Defined in:
- lib/flow_commerce/flow_api_v0_client.rb
Overview
An order represents all of the information about a particular line item, including pricing, currency rates, delivery options, etc. All information in an order is guaranteed by Flow - if an order is submitted before its expiration. The intended use case is to create an order as a consumer enters checkout, then to submit that order as part of the user submitting their order. Note that Flow will automatically mark an order submitted if we see a payment authorization for an order.
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
-
#balance ⇒ Object
readonly
Returns the value of attribute balance.
-
#customer ⇒ Object
readonly
Returns the value of attribute customer.
-
#delivered_duty ⇒ Object
readonly
Returns the value of attribute delivered_duty.
-
#deliveries ⇒ Object
readonly
Returns the value of attribute deliveries.
-
#destination ⇒ Object
readonly
Returns the value of attribute destination.
-
#experience ⇒ Object
readonly
Returns the value of attribute experience.
-
#expires_at ⇒ Object
readonly
Returns the value of attribute expires_at.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#identifiers ⇒ Object
readonly
Returns the value of attribute identifiers.
-
#items ⇒ Object
readonly
Returns the value of attribute items.
-
#lines ⇒ Object
readonly
Returns the value of attribute lines.
-
#number ⇒ Object
readonly
Returns the value of attribute number.
-
#payments ⇒ Object
readonly
Returns the value of attribute payments.
-
#prices ⇒ Object
readonly
Returns the value of attribute prices.
-
#promotions ⇒ Object
readonly
Returns the value of attribute promotions.
-
#selections ⇒ Object
readonly
Returns the value of attribute selections.
-
#submitted_at ⇒ Object
readonly
Returns the value of attribute submitted_at.
-
#total ⇒ Object
readonly
Returns the value of attribute total.
Attributes inherited from ExpandableOrder
Instance Method Summary collapse
- #copy(incoming = {}) ⇒ Object
-
#initialize(incoming = {}) ⇒ Order
constructor
A new instance of Order.
- #subtype_to_hash ⇒ Object
- #to_json ⇒ Object
Methods inherited from ExpandableOrder
Constructor Details
#initialize(incoming = {}) ⇒ Order
Returns a new instance of Order.
20073 20074 20075 20076 20077 20078 20079 20080 20081 20082 20083 20084 20085 20086 20087 20088 20089 20090 20091 20092 20093 20094 20095 20096 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20073 def initialize(incoming={}) super(:discriminator => ExpandableOrder::Types::ORDER) opts = HttpClient::Helper.symbolize_keys(incoming) HttpClient::Preconditions.require_keys(opts, [:id, :number, :customer, :delivered_duty, :destination, :expires_at, :items, :deliveries, :selections, :prices, :total, :attributes], 'Order') @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String) @number = HttpClient::Preconditions.assert_class('number', opts.delete(:number), String) @experience = (x = opts.delete(:experience); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::ExpandableExperience) ? x : ::Io::Flow::V0::Models::ExpandableExperience.from_json(x))) @customer = (x = opts.delete(:customer); x.is_a?(::Io::Flow::V0::Models::Customer) ? x : ::Io::Flow::V0::Models::Customer.new(x)) @delivered_duty = (x = opts.delete(:delivered_duty); x.is_a?(::Io::Flow::V0::Models::DeliveredDuty) ? x : ::Io::Flow::V0::Models::DeliveredDuty.apply(x)) @destination = (x = opts.delete(:destination); x.is_a?(::Io::Flow::V0::Models::OrderAddress) ? x : ::Io::Flow::V0::Models::OrderAddress.new(x)) @expires_at = HttpClient::Preconditions.assert_class('expires_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:expires_at)), DateTime) @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)) } @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)) } @selections = HttpClient::Preconditions.assert_class('selections', opts.delete(:selections), Array).map { |v| HttpClient::Preconditions.assert_class('selections', v, String) } @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)) } @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::LocalizedTotal) ? x : ::Io::Flow::V0::Models::LocalizedTotal.new(x)) @attributes = HttpClient::Preconditions.assert_class('attributes', opts.delete(:attributes), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h } @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)) }) @identifiers = (x = opts.delete(:identifiers); x.nil? ? nil : HttpClient::Preconditions.assert_class('identifiers', x, Array).map { |v| HttpClient::Preconditions.assert_class('identifiers', v, String) }) @promotions = (x = opts.delete(:promotions); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Promotions) ? x : ::Io::Flow::V0::Models::Promotions.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)) }) @balance = (x = opts.delete(:balance); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::LocalizedTotal) ? x : ::Io::Flow::V0::Models::LocalizedTotal.new(x))) end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def attributes @attributes end |
#balance ⇒ Object (readonly)
Returns the value of attribute balance.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def balance @balance end |
#customer ⇒ Object (readonly)
Returns the value of attribute customer.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def customer @customer end |
#delivered_duty ⇒ Object (readonly)
Returns the value of attribute delivered_duty.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def delivered_duty @delivered_duty end |
#deliveries ⇒ Object (readonly)
Returns the value of attribute deliveries.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def deliveries @deliveries end |
#destination ⇒ Object (readonly)
Returns the value of attribute destination.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def destination @destination end |
#experience ⇒ Object (readonly)
Returns the value of attribute experience.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def experience @experience end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def expires_at @expires_at end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def id @id end |
#identifiers ⇒ Object (readonly)
Returns the value of attribute identifiers.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def identifiers @identifiers end |
#items ⇒ Object (readonly)
Returns the value of attribute items.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def items @items end |
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def lines @lines end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def number @number end |
#payments ⇒ Object (readonly)
Returns the value of attribute payments.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def payments @payments end |
#prices ⇒ Object (readonly)
Returns the value of attribute prices.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def prices @prices end |
#promotions ⇒ Object (readonly)
Returns the value of attribute promotions.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def promotions @promotions end |
#selections ⇒ Object (readonly)
Returns the value of attribute selections.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def selections @selections end |
#submitted_at ⇒ Object (readonly)
Returns the value of attribute submitted_at.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def submitted_at @submitted_at end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
20071 20072 20073 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20071 def total @total end |
Instance Method Details
#copy(incoming = {}) ⇒ Object
20102 20103 20104 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20102 def copy(incoming={}) Order.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming))) end |
#subtype_to_hash ⇒ Object
20106 20107 20108 20109 20110 20111 20112 20113 20114 20115 20116 20117 20118 20119 20120 20121 20122 20123 20124 20125 20126 20127 20128 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20106 def subtype_to_hash { :id => id, :number => number, :experience => experience.nil? ? nil : experience.to_hash, :customer => customer.to_hash, :delivered_duty => delivered_duty.value, :destination => destination.to_hash, :expires_at => expires_at, :items => items.map { |o| o.to_hash }, :deliveries => deliveries.map { |o| o.to_hash }, :selections => selections, :prices => prices.map { |o| o.to_hash }, :total => total.to_hash, :attributes => attributes, :submitted_at => submitted_at, :lines => lines.nil? ? nil : lines.map { |o| o.to_hash }, :identifiers => identifiers.nil? ? nil : identifiers, :promotions => promotions.nil? ? nil : promotions.to_hash, :payments => payments.nil? ? nil : payments.map { |o| o.to_hash }, :balance => balance.nil? ? nil : balance.to_hash } end |
#to_json ⇒ Object
20098 20099 20100 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 20098 def to_json JSON.dump(to_hash) end |