class Tikkie::Api::Resources::PaymentRequest

Resource for a Payment Request.

Constants

STATUS_CLOSED
STATUS_EXPIRED
STATUS_MAX_SUCCESSFUL_PAYMENTS_REACHED
STATUS_MAX_YIELDED_REACHED
STATUS_OPEN

Public Class Methods

new(config, options = {}) click to toggle source
Calls superclass method Tikkie::Api::Resources::Base::new
# File lib/tikkie/api/resources/payment_request.rb, line 16
def initialize(config, options = {})
  @payment_request_token = options.delete(:payment_request_token)
  super(config, options)
end

Public Instance Methods

amount() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 29
def amount
  Tikkie::Api::Amount.from_cents(body[:amountInCents]).to_d
end
closed?() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 57
def closed?
  status == STATUS_CLOSED
end
created_at() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 41
def created_at
  Time.parse(body[:createdDateTime]) if body[:createdDateTime]
end
description() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 33
def description
  body[:description]
end
expired?() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 61
def expired?
  status == STATUS_EXPIRED
end
expiry_date() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 45
def expiry_date
  Date.parse(body[:expiryDate]) if body[:expiryDate]
end
number_of_payments() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 65
def number_of_payments
  body[:numberOfPayments]
end
open?() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 53
def open?
  status == STATUS_OPEN
end
payment_request_token() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 21
def payment_request_token
  @payment_request_token || body[:paymentRequestToken]
end
payments() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 73
def payments
  @payments ||= Tikkie::Api::Resources::Payments.new(config, payment_request_token: payment_request_token)
end
reference_id() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 37
def reference_id
  body[:referenceId]
end
status() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 49
def status
  body[:status]
end
total_amount_paid() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 69
def total_amount_paid
  Tikkie::Api::Amount.from_cents(body[:totalAmountPaidInCents]).to_d
end
url() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 25
def url
  body[:url]
end

Private Instance Methods

create_resource(attributes) click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 83
def create_resource(attributes)
  params = { description: attributes.fetch(:description) }
  if attributes.key?(:amount)
    amount = Tikkie::Api::Amount.new(attributes[:amount])
    params[:amountInCents] = amount.to_cents
  end
  params[:expiryDate] = attributes[:expiry_date].respond_to?(:strftime) ? attributes[:expiry_date].strftime("%F") : attributes[:expiry_date] if attributes.key?(:expiry_date)
  params[:referenceId] = attributes[:reference_id] if attributes.key?(:reference_id)

  request.post("paymentrequests", options, params)
end
load_resource() click to toggle source
# File lib/tikkie/api/resources/payment_request.rb, line 79
def load_resource
  request.get("paymentrequests/#{payment_request_token}", options)
end