UNPKG

@bebapps/rapyd-sdk

Version:

An un-official [Rapyd](https://rapyd.net) SDK for Node.js.

100 lines (91 loc) 4.25 kB
import { RapydClient } from '../../../core/RapydClient'; import { Payment } from '../types/Payment'; import { PaymentError } from '../enums/PaymentError'; import { CreatePaymentRequest } from '../requests/CreatePaymentRequest'; import { UpdatePaymentRequest } from '../requests/UpdatePaymentRequest'; import { CapturePaymentRequest } from '../requests/CapturePaymentRequest'; import { CompletePaymentRequest } from '../requests/CompletePaymentRequest'; import { RetrievePaymentRequest } from '../requests/RetrievePaymentRequest'; import { CancelPaymentRequest } from '../requests/CancelPaymentRequest'; import { ListPaymentsRequest } from '../requests/ListPaymentsRequest'; export async function createPayment<R = Payment>(client: RapydClient, request: CreatePaymentRequest): Promise<R> { const response = await client.post('/v1/payments', { address: request.address, amount: request.amount, capture: request.capture, complete_payment_url: request.complete_payment_url, currency: request.currency, customer: request.customer, description: request.description, error_payment_url: request.error_payment_url, escrow: request.escrow, escrow_release_days: request.escrow_release_days, ewallets: request.ewallets, expiration: request.expiration, fixed_side: request.fixed_side, initiation_type: request.initiation_type, group_payment: request.group_payment, merchant_reference_id: request.merchant_reference_id, metadata: request.metadata, payment_fees: request.payment_fees, payment_method: request.payment_method, payment_method_options: request.payment_method_options, receipt_email: request.receipt_email, requested_currency: request.requested_currency, statement_descriptor: request.statement_descriptor, }); return await response.data<R, PaymentError>(); } export async function updatePayment<R = Payment>(client: RapydClient, request: UpdatePaymentRequest): Promise<R> { const response = await client.post('/v1/payments/{}', request.payment, { address: request.address, description: request.description, escrow: request.escrow, escrow_release_days: request.escrow_release_days, initiation_type: request.initiation_type, metadata: request.metadata, receipt_email: request.receipt_email, }); return await response.data<R, PaymentError>(); } export async function capturePayment<R = Payment>(client: RapydClient, request: CapturePaymentRequest): Promise<R> { const response = await client.post('/v1/payments/{}/capture', request.payment, { amount: request.amount, receipt_email: request.receipt_email, statement_descriptor: request.statement_descriptor, }); return await response.data<R, PaymentError>(); } export async function completePayment<R = Payment>(client: RapydClient, request: CompletePaymentRequest): Promise<R> { const response = await client.post('/v1/payments/completePayment', { token: request.token, param1: request.param1, param2: request.param2, }); return await response.data<R, PaymentError>(); } export async function retrievePayment<R = Payment>(client: RapydClient, request: RetrievePaymentRequest): Promise<R> { const response = await client.get('/v1/payments/{}', request.payment); return await response.data<R, PaymentError>(); } export async function cancelPayment<R = Payment>(client: RapydClient, request: CancelPaymentRequest): Promise<R> { const response = await client.delete('/v1/payments/{}', request.payment); return await response.data<R, PaymentError>(); } export async function listPayments<R = Payment>(client: RapydClient, request: ListPaymentsRequest): Promise<R> { const queryParams = client.queryParams({ customer: request.customer, ending_before: request.ending_before, ewallet: request.ewallet, group: request.group, invoice: request.invoice, limit: request.limit, merchant_reference_id: request.merchant_reference_id, order: request.order, payment_method: request.payment_method, starting_after: request.starting_after, subscription: request.subscription, }); const response = await client.get('/v1/payments' + queryParams); return await response.data<R, PaymentError>(); }