class PaymentRecipes::PayPal::REST::Authorization

Attributes

create_time[R]
currency[R]
expanded[R]
id[R]
payment[R]
payment_id[R]
payment_mode[R]
protection_eligibility[R]
protection_eligibility_type[R]
raw_authorization[R]
state[R]
subtotal[R]
total[R]
update_time[R]
valid_until[R]

Public Class Methods

find(id) click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 131
def find(id)
  paypal_authorization = find_raw(id)

  if paypal_authorization
    new(paypal_authorization, payment: nil, expanded: true)
  else
    nil
  end
end
find_raw(id) click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 141
def find_raw(id)
  begin
    ::PayPal::SDK::REST::Authorization.find(id)

  rescue ::PayPal::SDK::Core::Exceptions::ResourceNotFound
    nil
  end
end
new(paypal_authorization, payment: nil, expanded: false) click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 26
def initialize(paypal_authorization, payment: nil, expanded: false)
  unless paypal_authorization.is_a?(::PayPal::SDK::REST::DataTypes::Authorization)
    raise Exception, "#{ self.class.name } must be initialized with a PayPal Authorization" 
  end

  if payment
    unless payment.is_a?(::PaymentRecipes::PayPal::REST::Payment)
      raise Exception, "Parameter payment must be a PaymentRecipes::PayPal::Payment"
    end

    @payment = payment
    @payment_id = payment.id
  end

  extract_and_store(paypal_authorization)
  @expanded = expanded
end

Public Instance Methods

authorized?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 98
def authorized?
  @state == :authorized
end
can_be_captured?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 118
def can_be_captured?
  authorized? || partially_captured?
end
capture() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 86
def capture
  captures.first
end
captured?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 106
def captured?
  @state == :captured
end
captures() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 82
def captures
  payment.captures
end
expired?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 110
def expired?
  @state == :expired
end
inspect() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 90
def inspect
  to_str
end
partially_captured?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 102
def partially_captured?
  @state == :partially_captured
end
pending?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 94
def pending?
  @state == :pending
end
reload!() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 44
def reload!
  paypal_authorization = self.class.find_raw(@id)
  extract_and_store(paypal_authorization)
  @expanded = true

  self
end
reload_payment!() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 52
def reload_payment!
  @payment = ::PaymentRecipes::PayPal::REST::Payment.find(@payment_id) 

  @payment
end
to_s() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 122
def to_s
  to_str
end
to_str() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 126
def to_str
  "<#{ self.class.name } total=#{ @total.format } state=#{ @state } id=#{ @id }>"
end
voided?() click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 114
def voided?
  @state == :voided
end

Private Instance Methods

extract_and_store(paypal_authorization) click to toggle source
# File lib/payment_recipes/paypal/rest/authorization.rb, line 153
def extract_and_store(paypal_authorization)
  @id                           = convert_to_string(paypal_authorization.id)
  @currency                     = convert_to_string(paypal_authorization.amount.currency)
  @total                        = convert_to_money(amount: paypal_authorization.amount.total, currency: @currency)
  @subtotal                     = convert_to_money(amount: paypal_authorization.amount.details.subtotal, currency: @currency)
  @create_time                  = convert_to_time(paypal_authorization.create_time)
  @update_time                  = convert_to_time(paypal_authorization.update_time)
  @valid_until                  = convert_to_time(paypal_authorization.valid_until)
  @payment_id                   = convert_to_string(paypal_authorization.parent_payment)
  @state                        = convert_to_symbol(paypal_authorization.state)
  @raw_authorization            = paypal_authorization

  @payment_mode                 = convert_to_string(paypal_authorization.payment_mode)
  @protection_eligibility       = convert_to_string(paypal_authorization.protection_eligibility)
  @protection_eligibility_type  = convert_to_string(paypal_authorization.protection_eligibility_type)
end