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.



24092
24093
24094
24095
24096
24097
24098
24099
24100
24101
24102
24103
24104
24105
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24092

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.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



24090
24091
24092
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24090

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



24111
24112
24113
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24111

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

#to_hashObject



24115
24116
24117
24118
24119
24120
24121
24122
24123
24124
24125
24126
24127
24128
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24115

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



24107
24108
24109
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 24107

def to_json
  JSON.dump(to_hash)
end