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.



28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28476

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)
  @requested = (x = opts.delete(:requested); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
  @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 })
  @status = (x = (x = opts.delete(:status); x.nil? ? "succeeded" : x); x.is_a?(::Io::Flow::V0::Models::CaptureStatus) ? x : ::Io::Flow::V0::Models::CaptureStatus.apply(x))
  @base = (x = opts.delete(:base); x.nil? ? nil : (x = x; x.is_a?(::Io::Flow::V0::Models::Money) ? x : ::Io::Flow::V0::Models::Money.new(x)))
end

Instance Attribute Details

#amountObject (readonly)

Returns the value of attribute amount.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



28474
28475
28476
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28474

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



28495
28496
28497
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28495

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

#to_hashObject



28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28499

def to_hash
  {
    :id => id,
    :key => key,
    :authorization => authorization.to_hash,
    :amount => amount.to_f.to_s,
    :currency => currency,
    :requested => requested.nil? ? nil : requested.to_hash,
    :created_at => created_at,
    :attributes => attributes.nil? ? nil : attributes,
    :status => status.value,
    :base => base.nil? ? nil : base.to_hash
  }
end

#to_jsonObject



28491
28492
28493
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 28491

def to_json
  JSON.dump(to_hash)
end