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.



19972
19973
19974
19975
19976
19977
19978
19979
19980
19981
19982
19983
19984
19985
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19972

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.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



19970
19971
19972
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19970

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



19991
19992
19993
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19991

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

#to_hashObject



19995
19996
19997
19998
19999
20000
20001
20002
20003
20004
20005
20006
20007
20008
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19995

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



19987
19988
19989
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 19987

def to_json
  JSON.dump(to_hash)
end