Class: Io::Flow::V0::Models::OrderBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Overview

The Order Builder model is used to incrementally build up an order until it is complete and can be submitted.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(incoming = {}) ⇒ OrderBuilder

Returns a new instance of OrderBuilder.



30102
30103
30104
30105
30106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30102

def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  @order = (x = opts.delete(:order); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Order) ? x : ::Io::Flow::V0::Models::Order.new(x)))
  @errors = (x = opts.delete(:errors); x.nil? ? nil : HttpClient::Preconditions.assert_class('errors', x, Array).map { |v| (x = v; x.is_a?(::Io::Flow::V0::Models::OrderError) ? x : ::Io::Flow::V0::Models::OrderError.new(x)) })
end

Instance Attribute Details

#errorsObject (readonly)

Returns the value of attribute errors.



30100
30101
30102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30100

def errors
  @errors
end

#orderObject (readonly)

Returns the value of attribute order.



30100
30101
30102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30100

def order
  @order
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



30112
30113
30114
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30112

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

#to_hashObject



30116
30117
30118
30119
30120
30121
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30116

def to_hash
  {
    :order => order.nil? ? nil : order.to_hash,
    :errors => errors.nil? ? nil : errors.map { |o| o.to_hash }
  }
end

#to_jsonObject



30108
30109
30110
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30108

def to_json
  JSON.dump(to_hash)
end