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.



24637
24638
24639
24640
24641
24642
24643
24644
24645
24646
24647
24648
24649
24650
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24637

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.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



24635
24636
24637
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24635

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



24656
24657
24658
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24656

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

#to_hashObject



24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24660

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



24652
24653
24654
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24652

def to_json
  JSON.dump(to_hash)
end