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.



40779
40780
40781
40782
40783
40784
40785
40786
40787
40788
40789
40790
40791
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40779

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.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



40777
40778
40779
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40777

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



40797
40798
40799
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40797

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

#to_hashObject



40801
40802
40803
40804
40805
40806
40807
40808
40809
40810
40811
40812
40813
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40801

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



40793
40794
40795
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 40793

def to_json
  JSON.dump(to_hash)
end