Class: Io::Flow::V0::Models::Capture

Inherits:
Object
  • Object
show all
Defined in:
lib/flow_commerce/flow_api_v0_client.rb

Overview

Capture actually transfers funds. You can capture as many times as you’d like up until the total amount of the authorization has been captured or the authorization otherwise becomes unavailable (e.g. expires).

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(incoming = {}) ⇒ Capture

Returns a new instance of Capture.



13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13350

def initialize(incoming={})
  opts = HttpClient::Helper.symbolize_keys(incoming)
  HttpClient::Preconditions.require_keys(opts, [:id, :key, :authorization, :amount, :currency, :created_at], 'Capture')
  @id = HttpClient::Preconditions.assert_class('id', opts.delete(:id), String)
  @key = HttpClient::Preconditions.assert_class('key', opts.delete(:key), String)
  @authorization = (x = opts.delete(:authorization); x.is_a?(::Io::Flow::V0::Models::AuthorizationReference) ? x : ::Io::Flow::V0::Models::AuthorizationReference.new(x))
  @amount = HttpClient::Preconditions.assert_class('amount', HttpClient::Helper.to_big_decimal(opts.delete(:amount)), BigDecimal)
  @currency = HttpClient::Preconditions.assert_class('currency', opts.delete(:currency), String)
  @original = (x = opts.delete(:original); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
  @attributes = (x = opts.delete(:attributes); x.nil? ? nil : HttpClient::Preconditions.assert_class('attributes', x, Hash).inject({}) { |h, d| h[d[0]] = HttpClient::Preconditions.assert_class('attributes', d[1], String); h })
end

Instance Attribute Details

#amountObject (readonly)

Returns the value of attribute amount.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def key
  @key
end

#originalObject (readonly)

Returns the value of attribute original.



13348
13349
13350
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13348

def original
  @original
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



13367
13368
13369
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13367

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

#to_hashObject



13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13371

def to_hash
  {
    :id => id,
    :key => key,
    :authorization => authorization.to_hash,
    :amount => amount,
    :currency => currency,
    :original => original.nil? ? nil : original.to_hash,
    :created_at => created_at,
    :attributes => attributes.nil? ? nil : attributes
  }
end

#to_jsonObject



13363
13364
13365
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13363

def to_json
  JSON.dump(to_hash)
end