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.



12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12917

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)
  @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.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12915
12916
12917
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12915

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12933
12934
12935
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12933

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

#to_hashObject



12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12937

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

#to_jsonObject



12929
12930
12931
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12929

def to_json
  JSON.dump(to_hash)
end