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.



13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13362

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)
  @requested = (x = opts.delete(:requested); 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.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



13360
13361
13362
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13360

def requested
  @requested
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



13379
13380
13381
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13379

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

#to_hashObject



13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13383

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

#to_jsonObject



13375
13376
13377
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13375

def to_json
  JSON.dump(to_hash)
end