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.



11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11592

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.



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

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



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

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



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

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



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

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



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

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



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

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



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

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



11608
11609
11610
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11608

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

#to_hashObject



11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11612

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



11604
11605
11606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11604

def to_json
  JSON.dump(to_hash)
end