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.



17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17672

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.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



17670
17671
17672
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17670

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



17691
17692
17693
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17691

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

#to_hashObject



17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17695

def to_hash
  {
    :id => id,
    :key => key,
    :authorization => authorization.to_hash,
    :amount => amount,
    :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



17687
17688
17689
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17687

def to_json
  JSON.dump(to_hash)
end