UNPKG

@bebapps/rapyd-sdk

Version:

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

61 lines (54 loc) 2.7 kB
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>(); }