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.



12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12583

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.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



12581
12582
12583
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12581

def key
  @key
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



12599
12600
12601
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12599

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

#to_hashObject



12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12603

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



12595
12596
12597
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 12595

def to_json
  JSON.dump(to_hash)
end