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.



23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23542

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.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def amount
  @amount
end

#attributesObject (readonly)

Returns the value of attribute attributes.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def attributes
  @attributes
end

#authorizationObject (readonly)

Returns the value of attribute authorization.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def authorization
  @authorization
end

#baseObject (readonly)

Returns the value of attribute base.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def base
  @base
end

#created_atObject (readonly)

Returns the value of attribute created_at.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def created_at
  @created_at
end

#currencyObject (readonly)

Returns the value of attribute currency.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def currency
  @currency
end

#idObject (readonly)

Returns the value of attribute id.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def id
  @id
end

#keyObject (readonly)

Returns the value of attribute key.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def key
  @key
end

#requestedObject (readonly)

Returns the value of attribute requested.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def requested
  @requested
end

#statusObject (readonly)

Returns the value of attribute status.



23540
23541
23542
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23540

def status
  @status
end

Instance Method Details

#copy(incoming = {}) ⇒ Object



23561
23562
23563
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23561

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

#to_hashObject



23565
23566
23567
23568
23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23565

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



23557
23558
23559
# File 'lib/flow_commerce/flow_api_v0_client.rb', line 23557

def to_json
  JSON.dump(to_hash)
end