@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
99 lines • 5.55 kB
JavaScript
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