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.



10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10904

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)
  @created_at = HttpClient::Preconditions.assert_class('created_at', HttpClient::Helper.to_date_time_iso8601(opts.delete(:created_at)), DateTime)
end

Instance Attribute Details

#amountObject (readonly)

Returns the value of attribute amount.



10902
10903
10904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10902

def amount
  @amount
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



10902
10903
10904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10902

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



10902
10903
10904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10902

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



10902
10903
10904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10902

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



10902
10903
10904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10902

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



10902
10903
10904
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10902

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



10919
10920
10921
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10919

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

#to_hashObject



10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10923

def to_hash
  {
    :id => id,
    :key => key,
    :authorization => authorization.to_hash,
    :amount => amount,
    :currency => currency,
    :created_at => created_at
  }
end

#to_jsonObject



10915
10916
10917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 10915

def to_json
  JSON.dump(to_hash)
end