UNPKG

@bebapps/rapyd-sdk

Version:

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

71 lines (63 loc) 3.11 kB
import { RapydClient } from '../../../core/RapydClient'; import { Customer } from '../types/Customer'; import { CustomerError } from '../enums/CustomerError'; import { CreateCustomerRequest } from '../requests/CreateCustomerRequest'; import { UpdateCustomerRequest } from '../requests/UpdateCustomerRequest'; import { ListCustomersRequest } from '../requests/ListCustomersRequest'; import { RetrieveCustomerRequest } from '../requests/RetrieveCustomerRequest'; import { DeleteCustomerRequest } from '../requests/DeleteCustomerRequest'; import { DeleteDiscountFromCustomerRequest } from '../requests/DeleteDiscountFromCustomerRequest'; export async function createCustomer<R = Customer>(client: RapydClient, request: CreateCustomerRequest): Promise<R> { const response = await client.post('/v1/customers', { addresses: request.addresses, business_vat_id: request.business_vat_id, coupon: request.coupon, description: request.description, email: request.email, ewallet: request.ewallet, invoice_prefix: request.invoice_prefix, metadata: request.metadata, name: request.name, payment_method: request.payment_method, phone_number: request.phone_number, type: request.type, }); return await response.data<R, CustomerError>(); } export async function updateCustomer<R = Customer>(client: RapydClient, request: UpdateCustomerRequest): Promise<R> { const response = await client.post('/v1/customers/{}', request.customer, { addresses: request.addresses, business_vat_id: request.business_vat_id, coupon: request.coupon, default_payment_method: request.default_payment_method, description: request.description, email: request.email, ewallet: request.ewallet, invoice_prefix: request.invoice_prefix, metadata: request.metadata, name: request.name, phone_number: request.phone_number, }); return await response.data<R, CustomerError>(); } export async function listCustomers<R = Customer>(client: RapydClient, request: ListCustomersRequest): 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/customers' + queryParams); return await response.data<R, CustomerError>(); } export async function retrieveCustomer<R = Customer>(client: RapydClient, request: RetrieveCustomerRequest): Promise<R> { const response = await client.get('/v1/customers/{}', request.customer); return await response.data<R, CustomerError>(); } export async function deleteCustomer<R = Customer>(client: RapydClient, request: DeleteCustomerRequest): Promise<R> { const response = await client.delete('/v1/customers/{}', request.customer); return await response.data<R, CustomerError>(); } export async function deleteDiscountFromCustomer<R = Customer>(client: RapydClient, request: DeleteDiscountFromCustomerRequest): Promise<R> { const response = await client.delete('/v1/customers/{}/discount', request.customer); return await response.data<R, CustomerError>(); }