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.



30100
30101
30102
30103
30104
30105
30106
30107
30108
30109
30110
30111
30112
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30100

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.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



30098
30099
30100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30098

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



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

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

#to_hashObject



30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30122

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



30114
30115
30116
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30114

def to_json
  JSON.dump(to_hash)
end