/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { ordersCreate } from "../funcs/ordersCreate.js"; import { ExportAcceptEnum, ordersExport } from "../funcs/ordersExport.js"; import { ordersFinalize } from "../funcs/ordersFinalize.js"; import { ordersGenerateInvoice } from "../funcs/ordersGenerateInvoice.js"; import { ordersGet } from "../funcs/ordersGet.js"; import { ordersInvoice } from "../funcs/ordersInvoice.js"; import { ordersList } from "../funcs/ordersList.js"; import { ordersReceipt } from "../funcs/ordersReceipt.js"; import { ordersUpdate } from "../funcs/ordersUpdate.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import { Order } from "../models/components/order.js"; import { OrderCreate } from "../models/components/ordercreate.js"; import { OrderInvoice } from "../models/components/orderinvoice.js"; import { OrderReceipt } from "../models/components/orderreceipt.js"; import { OrdersExportRequest, OrdersExportResponse, } from "../models/operations/ordersexport.js"; import { OrdersFinalizeRequest } from "../models/operations/ordersfinalize.js"; import { OrdersGenerateInvoiceRequest } from "../models/operations/ordersgenerateinvoice.js"; import { OrdersGetRequest } from "../models/operations/ordersget.js"; import { OrdersInvoiceRequest } from "../models/operations/ordersinvoice.js"; import { OrdersListRequest, OrdersListResponse, } from "../models/operations/orderslist.js"; import { OrdersReceiptRequest } from "../models/operations/ordersreceipt.js"; import { OrdersUpdateRequest } from "../models/operations/ordersupdate.js"; import { unwrapAsync } from "../types/fp.js"; import { PageIterator, unwrapResultIterator } from "../types/operations.js"; export { ExportAcceptEnum } from "../funcs/ordersExport.js"; export class Orders extends ClientSDK { /** * List Orders * * @remarks * List orders. * * **Scopes**: `orders:read` */ async list( request: OrdersListRequest, options?: RequestOptions, ): Promise> { return unwrapResultIterator(ordersList( this, request, options, )); } /** * Create Order * * @remarks * Create a draft order for an off-session charge against a saved payment * method. The order is created with `status=draft` and no invoice number; * call `POST /v1/orders/{id}/finalize` to attempt the charge. * * The organization must have the `off_session_charges_enabled` feature flag. * * **Scopes**: `orders:write` */ async create( request: OrderCreate, options?: RequestOptions, ): Promise { return unwrapAsync(ordersCreate( this, request, options, )); } /** * Export Orders * * @remarks * Export orders as a CSV file. * * **Scopes**: `orders:read` */ async export( request: OrdersExportRequest, options?: RequestOptions & { acceptHeaderOverride?: ExportAcceptEnum }, ): Promise { return unwrapAsync(ordersExport( this, request, options, )); } /** * Get Order * * @remarks * Get an order by ID. * * **Scopes**: `orders:read` */ async get( request: OrdersGetRequest, options?: RequestOptions, ): Promise { return unwrapAsync(ordersGet( this, request, options, )); } /** * Update Order * * @remarks * Update an order. * * **Scopes**: `orders:write` */ async update( request: OrdersUpdateRequest, options?: RequestOptions, ): Promise { return unwrapAsync(ordersUpdate( this, request, options, )); } /** * Finalize Order * * @remarks * Finalize a draft order and synchronously attempt an off-session charge. * * On success, the order transitions to `paid` and benefit grants fire * before the response returns. On failure (decline, missing payment method, * SCA challenge), the order stays in `draft` and a 4xx error is returned. * * The request fails with 412 if the order is not in `draft` status. * * **Scopes**: `orders:write` */ async finalize( request: OrdersFinalizeRequest, options?: RequestOptions, ): Promise { return unwrapAsync(ordersFinalize( this, request, options, )); } /** * Get Order Invoice * * @remarks * Get an order's invoice data. * * **Scopes**: `orders:read` */ async invoice( request: OrdersInvoiceRequest, options?: RequestOptions, ): Promise { return unwrapAsync(ordersInvoice( this, request, options, )); } /** * Generate Order Invoice * * @remarks * Trigger generation of an order's invoice. * * **Scopes**: `orders:read` */ async generateInvoice( request: OrdersGenerateInvoiceRequest, options?: RequestOptions, ): Promise { return unwrapAsync(ordersGenerateInvoice( this, request, options, )); } /** * Get Order Receipt * * @remarks * Get a presigned URL to download an order's receipt PDF. * * **Scopes**: `orders:read` */ async receipt( request: OrdersReceiptRequest, options?: RequestOptions, ): Promise { return unwrapAsync(ordersReceipt( this, request, options, )); } }