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.



23102
23103
23104
23105
23106
23107
23108
23109
23110
23111
23112
23113
23114
23115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23102

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.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



23100
23101
23102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23100

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



23121
23122
23123
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23121

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

#to_hashObject



23125
23126
23127
23128
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23125

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



23117
23118
23119
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23117

def to_json
  JSON.dump(to_hash)
end