@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
96 lines (85 loc) • 4.6 kB
text/typescript
import { RapydClient } from '../../../core/RapydClient';
import { WalletTransaction } from '../types/WalletTransaction';
import { WalletTransactionError } from '../enums/WalletTransactionError';
import { TransferFundsBetweenWalletsRequest } from '../requests/TransferFundsBetweenWalletsRequest';
import { SetTransferResponseRequest } from '../requests/SetTransferResponseRequest';
import { PutFundsOnHoldRequest } from '../requests/PutFundsOnHoldRequest';
import { ReleaseOnHoldFundsRequest } from '../requests/ReleaseOnHoldFundsRequest';
import { SetWalletAccountLimitRequest } from '../requests/SetWalletAccountLimitRequest';
import { DeleteWalletAccountLimitRequest } from '../requests/DeleteWalletAccountLimitRequest';
import { ListWalletTransactionsRequest } from '../requests/ListWalletTransactionsRequest';
import { RetrieveWalletBalancesRequest } from '../requests/RetrieveWalletBalancesRequest';
import { GetDetailsOfWalletTransactionRequest } from '../requests/GetDetailsOfWalletTransactionRequest';
export async function transferFundsBetweenWallets<R = WalletTransaction>(client: RapydClient, request: TransferFundsBetweenWalletsRequest): Promise<R> {
const response = await client.post('/v1/account/transfer', {
amount: request.amount,
currency: request.currency,
destination_ewallet: request.destination_ewallet,
metadata: request.metadata,
source_ewallet: request.source_ewallet,
});
return await response.data<R, WalletTransactionError>();
}
export async function setTransferResponse<R = WalletTransaction>(client: RapydClient, request: SetTransferResponseRequest): Promise<R> {
const response = await client.post('/v1/account/transfer/response', {
id: request.id,
status: request.status,
metadata: request.metadata,
});
return await response.data<R, WalletTransactionError>();
}
export async function putFundsOnHold<R = WalletTransaction>(client: RapydClient, request: PutFundsOnHoldRequest): Promise<R> {
const response = await client.post('/v1/account/balance/hold', {
amount: request.amount,
currency: request.currency,
ewallet: request.ewallet,
});
return await response.data<R, WalletTransactionError>();
}
export async function releaseOnHoldFunds<R = WalletTransaction>(client: RapydClient, request: ReleaseOnHoldFundsRequest): Promise<R> {
const response = await client.post('/v1/account/balance/release', {
amount: request.amount,
currency: request.currency,
ewallet: request.ewallet,
});
return await response.data<R, WalletTransactionError>();
}
export async function setWalletAccountLimit<R = WalletTransaction>(client: RapydClient, request: SetWalletAccountLimitRequest): Promise<R> {
const response = await client.post('/v1/user/{}/account/limits', request.wallet, {
account_id: request.account_id,
amount: request.amount,
currency: request.currency,
type: request.type,
});
return await response.data<R, WalletTransactionError>();
}
export async function deleteWalletAccountLimit<R = WalletTransaction>(client: RapydClient, request: DeleteWalletAccountLimitRequest): Promise<R> {
const response = await client.delete('/v1/user/{}/account/limits', request.wallet, {
account_id: request.account_id,
currency: request.currency,
type: request.type,
});
return await response.data<R, WalletTransactionError>();
}
export async function listWalletTransactions<R = WalletTransaction>(client: RapydClient, request: ListWalletTransactionsRequest): Promise<R> {
const queryParams = client.queryParams({
currency: request.currency,
end_date: request.end_date,
ending_before: request.ending_before,
page_number: request.page_number,
page_size: request.page_size,
start_date: request.start_date,
starting_after: request.starting_after,
type: request.type,
});
const response = await client.get('/v1/user/{}/transactions' + queryParams, request.wallet);
return await response.data<R, WalletTransactionError>();
}
export async function retrieveWalletBalances<R = WalletTransaction>(client: RapydClient, request: RetrieveWalletBalancesRequest): Promise<R> {
const response = await client.get('/v1/user/{}/accounts', request.wallet);
return await response.data<R, WalletTransactionError>();
}
export async function getDetailsOfWalletTransaction<R = WalletTransaction>(client: RapydClient, request: GetDetailsOfWalletTransactionRequest): Promise<R> {
const response = await client.get('/v1/user/{}/transactions/{}', request.wallet, request.transaction);
return await response.data<R, WalletTransactionError>();
}