@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
75 lines (68 loc) • 3.58 kB
text/typescript
import { RapydClient } from '../../../core/RapydClient';
import { WalletContact } from '../types/WalletContact';
import { WalletContactError } from '../enums/WalletContactError';
import { AddContactToWalletRequest } from '../requests/AddContactToWalletRequest';
import { UpdateWalletContactRequest } from '../requests/UpdateWalletContactRequest';
import { RetrieveWalletContactRequest } from '../requests/RetrieveWalletContactRequest';
import { ListContactsForARapydWalletRequest } from '../requests/ListContactsForARapydWalletRequest';
import { DeleteWalletContactRequest } from '../requests/DeleteWalletContactRequest';
export async function addContactToWallet<R = WalletContact>(client: RapydClient, request: AddContactToWalletRequest): Promise<R> {
const response = await client.post('/v1/ewallets/{}/contacts', request.wallet, {
address: request.address,
contact_type: request.contact_type,
country: request.country,
date_of_birth: request.date_of_birth,
email: request.email,
first_name: request.first_name,
gender: request.gender,
house_type: request.house_type,
identification_number: request.identification_number,
identification_type: request.identification_type,
last_name: request.last_name,
marital_status: request.marital_status,
metadata: request.metadata,
middle_name: request.middle_name,
mothers_name: request.mothers_name,
nationality: request.nationality,
phone_number: request.phone_number,
second_last_name: request.second_last_name,
send_notifications: request.send_notifications,
});
return await response.data<R, WalletContactError>();
}
export async function updateWalletContact<R = WalletContact>(client: RapydClient, request: UpdateWalletContactRequest): Promise<R> {
const response = await client.post('/v1/ewallets/{}/contacts/{}', request.wallet, request.contact, {
address: request.address,
business_details: request.business_details,
country: request.country,
date_of_birth: request.date_of_birth,
email: request.email,
first_name: request.first_name,
gender: request.gender,
house_type: request.house_type,
identification_number: request.identification_number,
identification_type: request.identification_type,
last_name: request.last_name,
marital_status: request.marital_status,
metadata: request.metadata,
middle_name: request.middle_name,
mothers_name: request.mothers_name,
nationality: request.nationality,
phone_number: request.phone_number,
second_last_name: request.second_last_name,
send_notifications: request.send_notifications,
});
return await response.data<R, WalletContactError>();
}
export async function retrieveWalletContact<R = WalletContact>(client: RapydClient, request: RetrieveWalletContactRequest): Promise<R> {
const response = await client.get('/v1/ewallets/{}/contacts/{}', request.wallet, request.contact);
return await response.data<R, WalletContactError>();
}
export async function listContactsForARapydWallet<R = WalletContact>(client: RapydClient, request: ListContactsForARapydWalletRequest): Promise<R> {
const response = await client.get('/v1/ewallets/{}/contacts', request.wallet);
return await response.data<R, WalletContactError>();
}
export async function deleteWalletContact<R = WalletContact>(client: RapydClient, request: DeleteWalletContactRequest): Promise<R> {
const response = await client.delete('/v1/ewallets/{}/contacts/{}', request.wallet, request.contact);
return await response.data<R, WalletContactError>();
}