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