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.



14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14969

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.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



14967
14968
14969
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14967

def requested
  @requested
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



14986
14987
14988
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14986

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

#to_hashObject



14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14990

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



14982
14983
14984
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14982

def to_json
  JSON.dump(to_hash)
end