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



12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12995

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.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def key
  @key
end

#originalObject (readonly)

Returns the value of attribute original.



12993
12994
12995
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12993

def original
  @original
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



13012
13013
13014
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13012

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

#to_hashObject



13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13016

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



13008
13009
13010
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 13008

def to_json
  JSON.dump(to_hash)
end