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.



24235
24236
24237
24238
24239
24240
24241
24242
24243
24244
24245
24246
24247
24248
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24235

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.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



24233
24234
24235
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24233

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



24254
24255
24256
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24254

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

#to_hashObject



24258
24259
24260
24261
24262
24263
24264
24265
24266
24267
24268
24269
24270
24271
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24258

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



24250
24251
24252
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24250

def to_json
  JSON.dump(to_hash)
end