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.



11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11814

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.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



11812
11813
11814
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11812

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



11830
11831
11832
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11830

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

#to_hashObject



11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11834

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



11826
11827
11828
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 11826

def to_json
  JSON.dump(to_hash)
end