Class: Io::Flow::V0::Models::OrderPayment

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

Overview

An Order Payment represents an individual payment applied to an order. The type of the payment can be used to further lookup transaction level detail

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(incoming = {}) ⇒ OrderPayment

Returns a new instance of OrderPayment.



33600
33601
33602
33603
33604
33605
33606
33607
33608
33609
33610
33611
33612
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33600

def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:id, :type, :reference, :description, :total], 'OrderPayment')
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
  @type = (x = opts.delete(:type); x.is_a?(::Io::Flow::V0::Models::OrderPaymentType) ? x : ::Io::Flow::V0::Models::OrderPaymentType.apply(x))
  @merchant_of_record = (x = (x = opts.delete(:merchant_of_record); x.nil? ? "flow" : x); x.is_a?(::Io::Flow::V0::Models::MerchantOfRecord) ? x : ::Io::Flow::V0::Models::MerchantOfRecord.apply(x))
  @reference = HttpClient::Preconditions.assert_class('reference', opts.delete(:reference), String)
  @description = HttpClient::Preconditions.assert_class('description', opts.delete(:description), String)
  @total = (x = opts.delete(:total); x.is_a?(::Io::Flow::V0::Models::PriceWithBase) ? x : ::Io::Flow::V0::Models::PriceWithBase.new(x))
  @address = (x = opts.delete(:address); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::BillingAddress) ? x : ::Io::Flow::V0::Models::BillingAddress.new(x)))
  @date = (x = opts.delete(:date); x.nil? ? nil : HttpClient::Preconditions.assert_class('date', HttpClient::Helper.to_date_time_iso8601(x), DateTime))
  @attributes = HttpClient::Preconditions.assert_class('attributes', (x = opts.delete(:attributes); x.nil? ? {} : x), Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h }
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



33598
33599
33600
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33598

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



33618
33619
33620
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33618

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

#to_hashObject



33622
33623
33624
33625
33626
33627
33628
33629
33630
33631
33632
33633
33634
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33622

def to_hash
  {
    :id => id,
    :type => type.value,
    :merchant_of_record => merchant_of_record.value,
    :reference => reference,
    :description => description,
    :total => total.to_hash,
    :address => address.nil? ? nil : address.to_hash,
    :date => date,
    :attributes => attributes
  }
end

#to_jsonObject



33614
33615
33616
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 33614

def to_json
  JSON.dump(to_hash)
end