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 set of line items, 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 payment authorization(s) covering the full balance of 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.
-
#merchant_of_record ⇒ Object
readonly
Returns the value of attribute merchant_of_record.
-
#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.
-
#rules ⇒ Object
readonly
Returns the value of attribute rules.
-
#selections ⇒ Object
readonly
Returns the value of attribute selections.
-
#submitted_at ⇒ Object
readonly
Returns the value of attribute submitted_at.
-
#tax_registration ⇒ Object
readonly
Returns the value of attribute tax_registration.
-
#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.
30911 30912 30913 30914 30915 30916 30917 30918 30919 30920 30921 30922 30923 30924 30925 30926 30927 30928 30929 30930 30931 30932 30933 30934 30935 30936 30937 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30911 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) @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))) @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))) @rules = (x = opts.delete(:rules); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::OrderRulesSummary) ? x : ::Io::Flow::V0::Models::OrderRulesSummary.new(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
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def attributes @attributes end |
#balance ⇒ Object (readonly)
Returns the value of attribute balance.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def balance @balance end |
#customer ⇒ Object (readonly)
Returns the value of attribute customer.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def customer @customer end |
#delivered_duty ⇒ Object (readonly)
Returns the value of attribute delivered_duty.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def delivered_duty @delivered_duty end |
#deliveries ⇒ Object (readonly)
Returns the value of attribute deliveries.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def deliveries @deliveries end |
#destination ⇒ Object (readonly)
Returns the value of attribute destination.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def destination @destination end |
#experience ⇒ Object (readonly)
Returns the value of attribute experience.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def experience @experience end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def expires_at @expires_at end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def id @id end |
#identifiers ⇒ Object (readonly)
Returns the value of attribute identifiers.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def identifiers @identifiers end |
#items ⇒ Object (readonly)
Returns the value of attribute items.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def items @items end |
#lines ⇒ Object (readonly)
Returns the value of attribute lines.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def lines @lines end |
#merchant_of_record ⇒ Object (readonly)
Returns the value of attribute merchant_of_record.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def merchant_of_record @merchant_of_record end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def number @number end |
#payments ⇒ Object (readonly)
Returns the value of attribute payments.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def payments @payments end |
#prices ⇒ Object (readonly)
Returns the value of attribute prices.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def prices @prices end |
#promotions ⇒ Object (readonly)
Returns the value of attribute promotions.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def promotions @promotions end |
#rules ⇒ Object (readonly)
Returns the value of attribute rules.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def rules @rules end |
#selections ⇒ Object (readonly)
Returns the value of attribute selections.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def selections @selections end |
#submitted_at ⇒ Object (readonly)
Returns the value of attribute submitted_at.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def submitted_at @submitted_at end |
#tax_registration ⇒ Object (readonly)
Returns the value of attribute tax_registration.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def tax_registration @tax_registration end |
#total ⇒ Object (readonly)
Returns the value of attribute total.
30909 30910 30911 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30909 def total @total end |
Instance Method Details
#copy(incoming = {}) ⇒ Object
30943 30944 30945 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30943 def copy(incoming={}) Order.new(subtype_to_hash.merge(HttpClient::Helper.symbolize_keys(incoming))) end |
#subtype_to_hash ⇒ Object
30947 30948 30949 30950 30951 30952 30953 30954 30955 30956 30957 30958 30959 30960 30961 30962 30963 30964 30965 30966 30967 30968 30969 30970 30971 30972 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30947 def subtype_to_hash { :id => id, :number => number, :merchant_of_record => merchant_of_record.nil? ? nil : merchant_of_record.value, :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, :rules => rules.nil? ? nil : rules.to_hash, :tax_registration => tax_registration.nil? ? nil : tax_registration.to_hash } end |
#to_json ⇒ Object
30939 30940 30941 |
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30939 def to_json JSON.dump(to_hash) end |