UNPKG

@bebapps/rapyd-sdk

Version:

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

96 lines (85 loc) 4.6 kB
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>(); }