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.



13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13418

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.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



13416
13417
13418
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13416

def requested
  @requested
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



13435
13436
13437
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13435

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

#to_hashObject



13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13439

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



13431
13432
13433
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13431

def to_json
  JSON.dump(to_hash)
end