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.
21423 21424 21425 21426 21427 21428 21429 21430 21431 21432 21433 21434 21435 21436 21437 21438 21439 21440 21441 21442 21443 21444 21445 21446 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21423 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.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def attributes @attributes end |
#balance ⇒ Object (readonly)
Returns the value of attribute balance.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def balance @balance end |
#customer ⇒ Object (readonly)
Returns the value of attribute customer.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def customer @customer end |
#delivered_duty ⇒ Object (readonly)
Returns the value of attribute delivered_duty.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def delivered_duty @delivered_duty end |
#deliveries ⇒ Object (readonly)
Returns the value of attribute deliveries.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def deliveries @deliveries end |
#destination ⇒ Object (readonly)
Returns the value of attribute destination.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def destination @destination end |
#experience ⇒ Object (readonly)
Returns the value of attribute experience.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def experience @experience end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def expires_at @expires_at end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def id @id end |
#identifiers ⇒ Object (readonly)
Returns the value of attribute identifiers.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def identifiers @identifiers end |
#items ⇒ Object (readonly)
Returns the value of attribute items.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def items @items end |
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def lines @lines end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def number @number end |
#payments ⇒ Object (readonly)
Returns the value of attribute payments.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def payments @payments end |
#prices ⇒ Object (readonly)
Returns the value of attribute prices.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def prices @prices end |
#promotions ⇒ Object (readonly)
Returns the value of attribute promotions.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def promotions @promotions end |
#selections ⇒ Object (readonly)
Returns the value of attribute selections.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def selections @selections end |
#submitted_at ⇒ Object (readonly)
Returns the value of attribute submitted_at.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def submitted_at @submitted_at end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
21421 21422 21423 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21421 def total @total end |
Instance Method Details
#copy(incoming = {}) ⇒ Object
21452 21453 21454 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21452 def copy(incoming={}) Order.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming))) end |
#subtype_to_hash ⇒ Object
21456 21457 21458 21459 21460 21461 21462 21463 21464 21465 21466 21467 21468 21469 21470 21471 21472 21473 21474 21475 21476 21477 21478 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21456 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
21448 21449 21450 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21448 def to_json JSON.dump(to_hash) end |