@bebapps/rapyd-sdk
Version:
An un-official [Rapyd](https://rapyd.net) SDK for Node.js.
61 lines (54 loc) • 2.7 kB
text/typescript
import { RapydClient } from '../../../core/RapydClient';
import { InvoiceItem } from '../types/InvoiceItem';
import { InvoiceItemError } from '../enums/InvoiceItemError';
import { CreateInvoiceItemRequest } from '../requests/CreateInvoiceItemRequest';
import { UpdateInvoiceItemRequest } from '../requests/UpdateInvoiceItemRequest';
import { RetrieveInvoiceItemRequest } from '../requests/RetrieveInvoiceItemRequest';
import { ListInvoiceItemsRequest } from '../requests/ListInvoiceItemsRequest';
import { DeleteInvoiceItemRequest } from '../requests/DeleteInvoiceItemRequest';
export async function createInvoiceItem<R = InvoiceItem>(client: RapydClient, request: CreateInvoiceItemRequest): Promise<R> {
const response = await client.post('/v1/invoice_items', {
amount: request.amount,
currency: request.currency,
customer: request.customer,
description: request.description,
discountable: request.discountable,
invoice: request.invoice,
metadata: request.metadata,
quantity: request.quantity,
subscription: request.subscription,
unit_amount: request.unit_amount,
});
return await response.data<R, InvoiceItemError>();
}
export async function updateInvoiceItem<R = InvoiceItem>(client: RapydClient, request: UpdateInvoiceItemRequest): Promise<R> {
const response = await client.post('/v1/invoice_items/{}', request.invoice_item, {
amount: request.amount,
description: request.description,
discountable: request.discountable,
metadata: request.metadata,
quantity: request.quantity,
unit_amount: request.unit_amount,
});
return await response.data<R, InvoiceItemError>();
}
export async function retrieveInvoiceItem<R = InvoiceItem>(client: RapydClient, request: RetrieveInvoiceItemRequest): Promise<R> {
const response = await client.get('/v1/invoice_items/{}', request.invoice_item);
return await response.data<R, InvoiceItemError>();
}
export async function listInvoiceItems<R = InvoiceItem>(client: RapydClient, request: ListInvoiceItemsRequest): Promise<R> {
const queryParams = client.queryParams({
created: request.created,
customer: request.customer,
ending_before: request.ending_before,
invoice: request.invoice,
limit: request.limit,
starting_after: request.starting_after,
});
const response = await client.get('/v1/invoice_items' + queryParams);
return await response.data<R, InvoiceItemError>();
}
export async function deleteInvoiceItem<R = InvoiceItem>(client: RapydClient, request: DeleteInvoiceItemRequest): Promise<R> {
const response = await client.delete('/v1/invoice_items/{}', request.invoice_item);
return await response.data<R, InvoiceItemError>();
}