@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
71 lines (63 loc) • 3.11 kB
text/typescript
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>();
}