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.



15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15510

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.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



15508
15509
15510
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15508

def requested
  @requested
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



15527
15528
15529
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15527

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

#to_hashObject



15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15531

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



15523
15524
15525
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 15523

def to_json
  JSON.dump(to_hash)
end