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.



32400
32401
32402
32403
32404
32405
32406
32407
32408
32409
32410
32411
32412
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32400

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.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



32398
32399
32400
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32398

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



32418
32419
32420
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32418

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

#to_hashObject



32422
32423
32424
32425
32426
32427
32428
32429
32430
32431
32432
32433
32434
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32422

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



32414
32415
32416
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32414

def to_json
  JSON.dump(to_hash)
end