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.



18284
18285
18286
18287
18288
18289
18290
18291
18292
18293
18294
18295
18296
18297
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18284

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.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



18282
18283
18284
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18282

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



18303
18304
18305
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18303

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

#to_hashObject



18307
18308
18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18307

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



18299
18300
18301
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 18299

def to_json
  JSON.dump(to_hash)
end