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.



19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19009

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.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



19007
19008
19009
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19007

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



19028
19029
19030
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19028

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

#to_hashObject



19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
19043
19044
19045
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19032

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



19024
19025
19026
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19024

def to_json
  JSON.dump(to_hash)
end