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.



19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19269

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.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



19267
19268
19269
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19267

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



19288
19289
19290
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19288

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

#to_hashObject



19292
19293
19294
19295
19296
19297
19298
19299
19300
19301
19302
19303
19304
19305
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19292

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



19284
19285
19286
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19284

def to_json
  JSON.dump(to_hash)
end