GetOrders
Implements GetOrders Unified Method.
Source
import { getNormalizers } from "@alokai/connect/integration-kit";
import type { Order } from "@vsf-enterprise/bigcommerce-api";
import paginate from "jw-paginate";
import { assertAuthorized, defineApi } from "@vsf-enterprise/unified-api-bigcommerce";
export const getOrders = defineApi.getOrders(async (context, args) => {
await assertAuthorized(context);
const { api } = await context.getApiClient();
const allOrders = await api.getOrders();
const { normalizeOrderListItem, normalizePagination } = getNormalizers(context);
const { currentPage = 1, pageSize = 20 } = args ?? {};
const paginator = paginate(allOrders?.length ?? 0, currentPage, pageSize);
const orders = (allOrders || [])
.slice(paginator.startIndex, paginator.endIndex + 1)
.map((order: Order) => normalizeOrderListItem(order));
const pagination = normalizePagination({
current_page: paginator.currentPage,
per_page: paginator.pageSize,
total: paginator.totalItems,
total_pages: paginator.totalPages,
});
return {
orders,
pagination,
};
});