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.



30404
30405
30406
30407
30408
30409
30410
30411
30412
30413
30414
30415
30416
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30404

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.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def address
  @address
end

#attributesObject (readonly)

Returns the value of attribute attributes.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def attributes
  @attributes
end

#dateObject (readonly)

Returns the value of attribute date.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def date
  @date
end

#descriptionObject (readonly)

Returns the value of attribute description.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def description
  @description
end

#idObject (readonly)

Returns the value of attribute id.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def id
  @id
end

#merchant_of_recordObject (readonly)

Returns the value of attribute merchant_of_record.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def merchant_of_record
  @merchant_of_record
end

#referenceObject (readonly)

Returns the value of attribute reference.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def reference
  @reference
end

#totalObject (readonly)

Returns the value of attribute total.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def total
  @total
end

#typeObject (readonly)

Returns the value of attribute type.



30402
30403
30404
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30402

def type
  @type
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



30422
30423
30424
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30422

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

#to_hashObject



30426
30427
30428
30429
30430
30431
30432
30433
30434
30435
30436
30437
30438
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30426

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



30418
30419
30420
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 30418

def to_json
  JSON.dump(to_hash)
end