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.



17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17086

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))
end

Instance Attribute Details

#amountObject (readonly)

Returns the value of attribute amount.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def authorization
  @authorization
end

#created_atObject (readonly)

Returns the value of attribute created_at.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



17084
17085
17086
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17084

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



17104
17105
17106
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17104

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

#to_hashObject



17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17108

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
  }
end

#to_jsonObject



17100
17101
17102
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 17100

def to_json
  JSON.dump(to_hash)
end