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.



31025
31026
31027
31028
31029
31030
31031
31032
31033
31034
31035
31036
31037
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31025

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.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



31023
31024
31025
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31023

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



31043
31044
31045
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31043

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

#to_hashObject



31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31047

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



31039
31040
31041
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 31039

def to_json
  JSON.dump(to_hash)
end