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.



19281
19282
19283
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
19294
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19281

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.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



19279
19280
19281
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19279

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



19300
19301
19302
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19300

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

#to_hashObject



19304
19305
19306
19307
19308
19309
19310
19311
19312
19313
19314
19315
19316
19317
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19304

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



19296
19297
19298
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19296

def to_json
  JSON.dump(to_hash)
end