@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
58 lines (50 loc) • 2.52 kB
text/typescript
import { RapydClient } from '../../../core/RapydClient';
import { Refund } from '../types/Refund';
import { RefundError } from '../enums/RefundError';
import { CreateRefundRequest } from '../requests/CreateRefundRequest';
import { UpdateRefundRequest } from '../requests/UpdateRefundRequest';
import { CompleteRefundRequest } from '../requests/CompleteRefundRequest';
import { RetrieveRefundRequest } from '../requests/RetrieveRefundRequest';
import { ListRefundsRequest } from '../requests/ListRefundsRequest';
import { ListRefundsByPaymentIDRequest } from '../requests/ListRefundsByPaymentIDRequest';
export async function createRefund<R = Refund>(client: RapydClient, request: CreateRefundRequest): Promise<R> {
const response = await client.post('/v1/refunds', {
amount: request.amount,
ewallets: request.ewallets,
merchant_reference_id: request.merchant_reference_id,
metadata: request.metadata,
payment: request.payment,
reason: request.reason,
});
return await response.data<R, RefundError>();
}
export async function updateRefund<R = Refund>(client: RapydClient, request: UpdateRefundRequest): Promise<R> {
const response = await client.post('/v1/refunds/{}', request.refund, {
metadata: request.metadata,
});
return await response.data<R, RefundError>();
}
export async function completeRefund<R = Refund>(client: RapydClient, request: CompleteRefundRequest): Promise<R> {
const response = await client.post('/v1/refunds/complete', {
token: request.token,
});
return await response.data<R, RefundError>();
}
export async function retrieveRefund<R = Refund>(client: RapydClient, request: RetrieveRefundRequest): Promise<R> {
const response = await client.get('/v1/refunds/{}', request.refund);
return await response.data<R, RefundError>();
}
export async function listRefunds<R = Refund>(client: RapydClient, request: ListRefundsRequest): Promise<R> {
const queryParams = client.queryParams({
ending_before: request.ending_before,
limit: request.limit,
starting_after: request.starting_after,
});
const response = await client.get('/v1/refunds' + queryParams);
return await response.data<R, RefundError>();
}
export async function listRefundsByPaymentID<R = Refund>(client: RapydClient, request: ListRefundsByPaymentIDRequest): Promise<R> {
const queryParams = client.queryParams({ payment: request.payment });
const response = await client.get('/v1/refunds' + queryParams);
return await response.data<R, RefundError>();
}