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.



23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
23579
23580
23581
23582
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23569

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.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



23567
23568
23569
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23567

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



23588
23589
23590
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23588

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

#to_hashObject



23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23592

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



23584
23585
23586
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23584

def to_json
  JSON.dump(to_hash)
end