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.



24087
24088
24089
24090
24091
24092
24093
24094
24095
24096
24097
24098
24099
24100
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24087

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.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



24085
24086
24087
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24085

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



24106
24107
24108
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24106

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

#to_hashObject



24110
24111
24112
24113
24114
24115
24116
24117
24118
24119
24120
24121
24122
24123
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24110

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



24102
24103
24104
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24102

def to_json
  JSON.dump(to_hash)
end