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.



17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17744

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.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



17742
17743
17744
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17742

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



17763
17764
17765
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17763

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

#to_hashObject



17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17767

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



17759
17760
17761
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17759

def to_json
  JSON.dump(to_hash)
end