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.



17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17811

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.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



17809
17810
17811
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17809

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



17830
17831
17832
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17830

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

#to_hashObject



17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17834

def to_hash
  {
    :id => id,
    :key => key,
    :authorization => authorization.to_hash,
    :amount => amount,
    :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



17826
17827
17828
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17826

def to_json
  JSON.dump(to_hash)
end