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.



32713
32714
32715
32716
32717
32718
32719
32720
32721
32722
32723
32724
32725
32726
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32713

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.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



32711
32712
32713
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32711

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



32732
32733
32734
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32732

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

#to_hashObject



32736
32737
32738
32739
32740
32741
32742
32743
32744
32745
32746
32747
32748
32749
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32736

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



32728
32729
32730
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 32728

def to_json
  JSON.dump(to_hash)
end