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.



52609
52610
52611
52612
52613
52614
52615
52616
52617
52618
52619
52620
52621
52622
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52609

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 }
  @method = (x = opts.delete(:method); x.nil? ? nil : HttpClient::Preconditions.assert_class('method', x, String))
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def merchant_of_record
  @merchant_of_record
end

#methodObject (readonly)

Returns the value of attribute method.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def method
  @method
end

#referenceObject (readonly)

Returns the value of attribute reference.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



52607
52608
52609
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52607

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



52628
52629
52630
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52628

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

#to_hashObject



52632
52633
52634
52635
52636
52637
52638
52639
52640
52641
52642
52643
52644
52645
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52632

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,
    :method => method
  }
end

#to_jsonObject



52624
52625
52626
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 52624

def to_json
  JSON.dump(to_hash)
end