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.



23011
23012
23013
23014
23015
23016
23017
23018
23019
23020
23021
23022
23023
23024
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23011

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.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



23009
23010
23011
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23009

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



23030
23031
23032
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23030

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

#to_hashObject



23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
23045
23046
23047
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23034

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



23026
23027
23028
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23026

def to_json
  JSON.dump(to_hash)
end