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.



11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11577

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.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



11575
11576
11577
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11575

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



11593
11594
11595
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11593

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

#to_hashObject



11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11597

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



11589
11590
11591
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11589

def to_json
  JSON.dump(to_hash)
end