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.



12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12675

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.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12673
12674
12675
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12673

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12691
12692
12693
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12691

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

#to_hashObject



12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12695

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



12687
12688
12689
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12687

def to_json
  JSON.dump(to_hash)
end