UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

103 lines 6.01 kB
import { SalesRepOrderListResponseSchema, SalesRepOrderDocumentResponseSchema } from '../schemas'; /** * Creates the oeHdrSalesrep resource methods * OpenAPI Path: /oe-hdr-salesrep → oeHdrSalesrep.* * @description Order management functionality specific to sales representatives including territory-based order access */ export function createOeHdrSalesrepResource(executeRequest) { return { /** * Sales representative order operations - OpenAPI Path: /oe-hdr-salesrep/{salesrepId}/oe-hdr */ oeHdr: { /** * Get order list for a specific sales representative * @description Returns all orders associated with a specific sales representative, filtered by territory and permissions. Essential for sales performance tracking and customer relationship management. * * @fullPath api.orders.oeHdrSalesrep.oeHdr.list * @service orders * @domain sales-management * @dataMethod oeHdrSalesrepData.oeHdr.list - returns only the orders array without metadata * @discoverable true * @searchTerms ["sales rep orders", "representative orders", "territory orders", "sales orders by rep", "rep performance"] * @relatedEndpoints ["api.orders.oeHdrSalesrep.oeHdr.doc.get", "api.orders.oeHdr.lookup.list", "api.customers.customer.list"] * @commonPatterns ["Sales rep performance", "Territory management", "Rep order history", "Sales tracking"] * @workflow ["sales-performance-tracking", "territory-management", "commission-calculation"] * @prerequisites ["Valid sales representative ID", "Sales rep access permissions"] * @nextSteps ["api.orders.oeHdrSalesrep.oeHdr.doc.get for details", "Calculate commission totals", "Territory analysis"] * @businessRules ["Returns only orders within rep's territory", "Respects sales hierarchy permissions", "May include completed and pending orders"] * @functionalArea "sales-and-territory-management" * @performance "Territory-filtered results - typically smaller datasets than global order lists" */ list: async (salesrepId) => { return executeRequest({ method: 'GET', path: `/oe-hdr-salesrep/${salesrepId}/oe-hdr`, responseSchema: SalesRepOrderListResponseSchema, }, {}); }, /** * Sales rep order document operations - OpenAPI Path: /oe-hdr-salesrep/{salesrepId}/oe-hdr/{orderNo}/doc */ doc: { /** * Get specific order document for a sales representative * @description Returns complete order document with sales rep context, including commission details and territory-specific information. Validates that the order belongs to the specified sales representative. * * @fullPath api.orders.oeHdrSalesrep.oeHdr.doc.get * @service orders * @domain sales-management * @dataMethod oeHdrSalesrepData.oeHdr.doc.get - returns only the order document without metadata * @discoverable true * @searchTerms ["sales rep order document", "rep order details", "territory order document", "rep order with lines"] * @relatedEndpoints ["api.orders.oeHdrSalesrep.oeHdr.list", "api.orders.oeHdr.doc.get", "api.customers.customer.get"] * @commonPatterns ["Rep order details", "Commission calculation", "Territory order review", "Sales order analysis"] * @workflow ["sales-order-review", "commission-processing", "territory-analysis"] * @prerequisites ["Valid sales rep ID", "Valid order number", "Order must belong to specified rep"] * @nextSteps ["Calculate commission", "Update order status", "Customer follow-up"] * @businessRules ["Order must belong to specified sales rep", "Includes commission and territory data", "Access controlled by sales hierarchy"] * @functionalArea "sales-and-territory-management" * @performance "Single document retrieval with rep validation - efficient for territory-specific access" */ get: async (salesrepId, orderNo) => { return executeRequest({ method: 'GET', path: `/oe-hdr-salesrep/${salesrepId}/oe-hdr/${orderNo}/doc`, responseSchema: SalesRepOrderDocumentResponseSchema, }, {}); }, }, }, }; } /** * Creates the oeHdrSalesrepData resource methods (data-only versions) */ export function createOeHdrSalesrepDataResource(oeHdrSalesrep) { return { oeHdr: { /** * Get only sales rep orders data without response metadata * @param salesrepId Sales representative ID * @returns Promise<SalesRepOrder[]> Direct array of sales rep orders */ list: async (salesrepId) => { const response = await oeHdrSalesrep.oeHdr.list(salesrepId); return response.data; }, doc: { /** * Get only sales rep order document data without response metadata * @param salesrepId Sales representative ID * @param orderNo Order number to retrieve * @returns Promise<SalesRepOrderDocument> Direct sales rep order document object */ get: async (salesrepId, orderNo) => { const response = await oeHdrSalesrep.oeHdr.doc.get(salesrepId, orderNo); return response.data; }, }, }, }; } //# sourceMappingURL=oe-hdr-salesrep.js.map