@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
100 lines (91 loc) • 4.25 kB
text/typescript
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>();
}