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.



21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21593

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.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



21591
21592
21593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21591

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



21612
21613
21614
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21612

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

#to_hashObject



21616
21617
21618
21619
21620
21621
21622
21623
21624
21625
21626
21627
21628
21629
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21616

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



21608
21609
21610
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 21608

def to_json
  JSON.dump(to_hash)
end