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.



22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22817

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.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



22815
22816
22817
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22815

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



22836
22837
22838
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22836

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

#to_hashObject



22840
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
22852
22853
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22840

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



22832
22833
22834
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 22832

def to_json
  JSON.dump(to_hash)
end