UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

99 lines 5.55 kB
import { OeHdrLookupResponseSchema, OeHdrDocResponseSchema, OeHdrLookupParamsSchema, OeHdrDocParamsSchema, } from '../schemas'; /** * Creates the oeHdr resource methods * OpenAPI Path: /oe-hdr → oeHdr.* * @description Core order management functionality for searching, tracking, and retrieving sales orders */ export function createOeHdrResource(executeRequest, createListMethod) { return { /** * Order lookup operations - OpenAPI Path: /oe-hdr/lookup */ lookup: { /** * Search and list order headers with flexible filtering options * @description Returns paginated order headers with comprehensive filtering by customer, date, status, sales rep, and search terms. Supports edge caching for improved performance. * * @fullPath api.orders.oeHdr.lookup.list * @service orders * @domain order-management * @dataMethod oeHdrData.lookup.list - returns only the order headers array without metadata * @discoverable true * @searchTerms ["order lookup", "search orders", "order list", "find orders", "order search", "sales orders"] * @relatedEndpoints ["api.orders.oeHdr.doc.get", "api.customers.customer.list", "api.orders.oeHdrSalesrep.oeHdr.list"] * @commonPatterns ["Search orders by customer", "Find orders by order number", "List incomplete orders", "Filter by date range"] * @workflow ["order-discovery", "order-status-tracking", "customer-order-history"] * @prerequisites ["Valid authentication token", "Order access permissions"] * @nextSteps ["api.orders.oeHdr.doc.get for full details", "api.customers.customer.get for customer info"] * @businessRules ["Returns only orders accessible to current user/sales rep", "Completed orders may have restricted access", "Search supports partial matches"] * @functionalArea "order-and-fulfillment-management" * @caching "Supports edgeCache parameter (1-8 hours) for frequently accessed order lists" * @performance "Use pagination for large result sets. Filter by specific criteria to improve performance." */ list: createListMethod('/oe-hdr/lookup', OeHdrLookupParamsSchema, OeHdrLookupResponseSchema), }, /** * Order document operations - OpenAPI Path: /oe-hdr/{orderNo}/doc */ doc: { /** * Retrieve complete order document with all related information * @description Returns comprehensive order details including customer info, shipping address, line items, and totals. Includes optional postal code validation for security. * * @fullPath api.orders.oeHdr.doc.get * @service orders * @domain order-management * @dataMethod oeHdrData.doc.get - returns only the order document without metadata * @discoverable true * @searchTerms ["order document", "order details", "full order", "order with lines", "complete order"] * @relatedEndpoints ["api.orders.oeHdr.lookup.list", "api.customers.customer.get", "api.items.products.get"] * @commonPatterns ["Get order details", "View complete order", "Order with line items", "Full order document"] * @workflow ["order-review", "order-fulfillment", "customer-service"] * @prerequisites ["Valid order number", "Order access permissions", "Optional postal code for validation"] * @nextSteps ["Process order fulfillment", "Update order status", "Generate invoice"] * @businessRules ["Postal code validation optional but recommended for security", "Access restricted by sales rep permissions", "Includes all order line items and totals"] * @functionalArea "order-and-fulfillment-management" * @performance "Single document retrieval - no pagination needed. Consider caching for frequently accessed orders." */ get: async (orderNo, params) => { return executeRequest({ method: 'GET', path: `/oe-hdr/${orderNo}/doc`, paramsSchema: OeHdrDocParamsSchema, responseSchema: OeHdrDocResponseSchema, }, params); }, }, }; } /** * Creates the oeHdrData resource methods (data-only versions) */ export function createOeHdrDataResource(oeHdr) { return { lookup: { /** * Get only order headers data without response metadata * @param params Same parameters as list() method * @returns Promise<OrderHeader[]> Direct array of order headers */ list: async (params) => { const response = await oeHdr.lookup.list(params); return response.data; }, }, doc: { /** * Get only order document data without response metadata * @param orderNo Order number to retrieve * @param params Optional parameters including postal code validation * @returns Promise<OrderDocument> Direct order document object */ get: async (orderNo, params) => { const response = await oeHdr.doc.get(orderNo, params); return response.data; }, }, }; } //# sourceMappingURL=oe-hdr.js.map