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.



11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11115

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)
  @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 })
end

Instance Attribute Details

#amountObject (readonly)

Returns the value of attribute amount.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



11113
11114
11115
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11113

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



11131
11132
11133
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11131

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

#to_hashObject



11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11135

def to_hash
  {
    :id => id,
    :key => key,
    :authorization => authorization.to_hash,
    :amount => amount,
    :currency => currency,
    :created_at => created_at,
    :attributes => attributes.nil? ? nil : attributes
  }
end

#to_jsonObject



11127
11128
11129
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11127

def to_json
  JSON.dump(to_hash)
end