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.



40931
40932
40933
40934
40935
40936
40937
40938
40939
40940
40941
40942
40943
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40931

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.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



40929
40930
40931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40929

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



40949
40950
40951
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40949

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

#to_hashObject



40953
40954
40955
40956
40957
40958
40959
40960
40961
40962
40963
40964
40965
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40953

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



40945
40946
40947
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40945

def to_json
  JSON.dump(to_hash)
end