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.



24909
24910
24911
24912
24913
24914
24915
24916
24917
24918
24919
24920
24921
24922
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24909

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.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



24907
24908
24909
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24907

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



24928
24929
24930
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24928

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

#to_hashObject



24932
24933
24934
24935
24936
24937
24938
24939
24940
24941
24942
24943
24944
24945
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24932

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



24924
24925
24926
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24924

def to_json
  JSON.dump(to_hash)
end