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.



12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12038

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.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12036
12037
12038
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12036

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12054
12055
12056
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12054

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

#to_hashObject



12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12058

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



12050
12051
12052
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12050

def to_json
  JSON.dump(to_hash)
end