Class: Io::Flow::V0::Models::Order
- Inherits:
-
Object
- Object
- 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.
-
#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.
-
#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.
Instance Method Summary collapse
- #copy(incoming = {}) ⇒ Object
-
#initialize(incoming = {}) ⇒ Order
constructor
A new instance of Order.
- #to_hash ⇒ Object
- #to_json ⇒ Object
Constructor Details
#initialize(incoming = {}) ⇒ Order
Returns a new instance of Order.
19213 19214 19215 19216 19217 19218 19219 19220 19221 19222 19223 19224 19225 19226 19227 19228 19229 19230 19231 19232 19233 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19213 def initialize(incoming={}) 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.new(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))) end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def attributes @attributes end |
#customer ⇒ Object (readonly)
Returns the value of attribute customer.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def customer @customer end |
#delivered_duty ⇒ Object (readonly)
Returns the value of attribute delivered_duty.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def delivered_duty @delivered_duty end |
#deliveries ⇒ Object (readonly)
Returns the value of attribute deliveries.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def deliveries @deliveries end |
#destination ⇒ Object (readonly)
Returns the value of attribute destination.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def destination @destination end |
#experience ⇒ Object (readonly)
Returns the value of attribute experience.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def experience @experience end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def expires_at @expires_at end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def id @id end |
#identifiers ⇒ Object (readonly)
Returns the value of attribute identifiers.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def identifiers @identifiers end |
#items ⇒ Object (readonly)
Returns the value of attribute items.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def items @items end |
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def lines @lines end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def number @number end |
#prices ⇒ Object (readonly)
Returns the value of attribute prices.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def prices @prices end |
#promotions ⇒ Object (readonly)
Returns the value of attribute promotions.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def promotions @promotions end |
#selections ⇒ Object (readonly)
Returns the value of attribute selections.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def selections @selections end |
#submitted_at ⇒ Object (readonly)
Returns the value of attribute submitted_at.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def submitted_at @submitted_at end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
19211 19212 19213 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19211 def total @total end |
Instance Method Details
#copy(incoming = {}) ⇒ Object
19239 19240 19241 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19239 def copy(incoming={}) Order.new(to_hash.merge(HttpClient::Helper.symbolize_keys(incoming))) end |
#to_hash ⇒ Object
19243 19244 19245 19246 19247 19248 19249 19250 19251 19252 19253 19254 19255 19256 19257 19258 19259 19260 19261 19262 19263 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19243 def 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 } end |
#to_json ⇒ Object
19235 19236 19237 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19235 def to_json JSON.dump(to_hash) end |