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.



18428
18429
18430
18431
18432
18433
18434
18435
18436
18437
18438
18439
18440
18441
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18428

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.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



18426
18427
18428
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18426

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



18447
18448
18449
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18447

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

#to_hashObject



18451
18452
18453
18454
18455
18456
18457
18458
18459
18460
18461
18462
18463
18464
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18451

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



18443
18444
18445
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18443

def to_json
  JSON.dump(to_hash)
end