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.



12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12766

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.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12764
12765
12766
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12764

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12782
12783
12784
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12782

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

#to_hashObject



12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12786

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



12778
12779
12780
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12778

def to_json
  JSON.dump(to_hash)
end