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.



12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12466

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.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12464
12465
12466
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12464

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12482
12483
12484
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12482

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

#to_hashObject



12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12486

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



12478
12479
12480
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12478

def to_json
  JSON.dump(to_hash)
end