KentaaNL/tikkie-api

View on GitHub
lib/tikkie/api/v1/requests/payment_requests.rb

Summary

Maintainability
A
1 hr
Test Coverage
# frozen_string_literal: true
 
require 'bigdecimal'
 
module Tikkie
module Api
module V1
module Requests
# Payment requests operations at Tikkie.
class PaymentRequests
def initialize(request)
@request = request
end
 
Method `list` has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
def list(platform_token, user_token, options = {})
offset = options[:offset] || 0
limit = options[:limit] || 20
from_date = options[:from_date]
to_date = options[:to_date]
 
params = { offset: offset, limit: limit }
params[:fromDate] = from_date.respond_to?(:utc) ? from_date.utc.iso8601 : from_date if from_date
params[:toDate] = to_date.respond_to?(:utc) ? to_date.utc.iso8601 : to_date if to_date
 
response = @request.get("/tikkie/platforms/#{platform_token}/users/#{user_token}/paymentrequests", params)
Tikkie::Api::V1::Responses::PaymentRequests.new(response, offset: offset, limit: limit)
end
 
def get(platform_token, user_token, payment_request_token)
response = @request.get("/tikkie/platforms/#{platform_token}/users/#{user_token}/paymentrequests/#{payment_request_token}")
 
Tikkie::Api::V1::Responses::PaymentRequest.new(response)
end
 
def create(platform_token, user_token, bank_account_token, options = {})
params = {
currency: options.fetch(:currency),
description: options.fetch(:description)
}
params[:amountInCents] = to_cents(options[:amount]) if options.key?(:amount)
params[:externalId] = options[:external_id] if options.key?(:external_id)
 
response = @request.post("/tikkie/platforms/#{platform_token}/users/#{user_token}/bankaccounts/#{bank_account_token}/paymentrequests", params)
 
Tikkie::Api::V1::Responses::PaymentRequestCreated.new(response)
end
 
private
 
def to_cents(amount)
decimal = BigDecimal(amount.to_s)
decimal *= 100 # to cents
decimal.to_i
end
end
end
end
end
end