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.



14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14727

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.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



14725
14726
14727
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14725

def requested
  @requested
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



14744
14745
14746
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14744

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

#to_hashObject



14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14748

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



14740
14741
14742
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 14740

def to_json
  JSON.dump(to_hash)
end