@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
166 lines • 9.97 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createPickTicketsResource = createPickTicketsResource;
exports.createPickTicketsDataResource = createPickTicketsDataResource;
const schemas_1 = require("../schemas");
/**
* Creates the pickTickets resource methods
* OpenAPI Path: /pick-tickets → pickTickets.*
* @description Pick ticket management for warehouse fulfillment and order picking workflows
*/
function createPickTicketsResource(executeRequest, createListMethod) {
return {
/**
* List pick tickets with filtering and pagination - OpenAPI Path: /pick-tickets
* @description Returns paginated pick tickets with comprehensive filtering by company, location, order status, and other criteria. Essential for warehouse management and order fulfillment workflows.
*
* @fullPath api.orders.pickTickets.list
* @service orders
* @domain warehouse-fulfillment
* @dataMethod pickTicketsData.list - returns only the pick tickets array without metadata
* @discoverable true
* @searchTerms ["pick tickets", "warehouse fulfillment", "order picking", "pick ticket list", "fulfillment tracking"]
* @relatedEndpoints ["api.orders.pickTickets.get", "api.orders.oeHdr.lookup.list", "api.orders.oeHdr.doc.get"]
* @commonPatterns ["List pending pick tickets", "Filter by location", "Track picking status", "Warehouse dashboard"]
* @workflow ["warehouse-fulfillment", "order-picking", "fulfillment-tracking"]
* @prerequisites ["Valid authentication", "Warehouse access permissions"]
* @nextSteps ["api.orders.pickTickets.get for details", "Update picking status", "Process fulfillment"]
* @businessRules ["Filters by location and company", "Supports order and status filtering", "Pagination required for large datasets"]
* @functionalArea "warehouse-and-fulfillment"
* @performance "Use filtering to reduce result sets. Consider pagination for better performance."
*/
list: createListMethod('/pick-tickets', schemas_1.PickTicketsListParamsSchema, schemas_1.PickTicketsListResponseSchema),
/**
* Get detailed pick ticket information - OpenAPI Path: /pick-tickets/{pickTicketNo}
* @description Returns comprehensive pick ticket details including order information, shipping details, tracking, and fulfillment status. Critical for warehouse operations and order tracking.
*
* @fullPath api.orders.pickTickets.get
* @service orders
* @domain warehouse-fulfillment
* @dataMethod pickTicketsData.get - returns only the pick ticket detail without metadata
* @discoverable true
* @searchTerms ["pick ticket details", "pick ticket info", "fulfillment details", "warehouse pick ticket"]
* @relatedEndpoints ["api.orders.pickTickets.list", "api.orders.oeHdr.doc.get", "api.orders.invoiceHdr.reprint.get"]
* @commonPatterns ["Get pick ticket details", "View pick ticket", "Track fulfillment", "Shipping information"]
* @workflow ["pick-ticket-review", "fulfillment-processing", "shipping-preparation"]
* @prerequisites ["Valid pick ticket number", "Warehouse access permissions"]
* @nextSteps ["Update fulfillment status", "Process shipping", "Generate tracking"]
* @businessRules ["Pick ticket number must be valid", "Access controlled by location permissions", "Includes shipping and tracking details"]
* @functionalArea "warehouse-and-fulfillment"
* @performance "Single pick ticket retrieval - efficient for detail information"
*/
get: async (pickTicketNo) => {
return executeRequest({
method: 'GET',
path: `/pick-tickets/${pickTicketNo}`,
responseSchema: schemas_1.PickTicketResponseSchema,
}, {});
},
/**
* Pick ticket lines operations - OpenAPI Path: /pick-tickets/{pickTicketNo}/lines
*/
lines: {
/**
* List pick ticket lines for a specific pick ticket
* @description Returns paginated pick ticket lines with detailed line item information including quantities, item details, and fulfillment status. Essential for warehouse picking operations and line-level tracking.
*
* @fullPath api.orders.pickTickets.lines.list
* @service orders
* @domain warehouse-fulfillment
* @dataMethod pickTicketsData.lines.list - returns only the pick ticket lines array without metadata
* @discoverable true
* @searchTerms ["pick ticket lines", "pick ticket items", "line items", "picking details", "warehouse lines"]
* @relatedEndpoints ["api.orders.pickTickets.get", "api.orders.pickTickets.list", "api.items.products.get"]
* @commonPatterns ["List pick ticket lines", "View line items", "Track picking by line", "Line-level fulfillment"]
* @workflow ["pick-ticket-fulfillment", "line-item-picking", "inventory-tracking"]
* @prerequisites ["Valid pick ticket number", "Warehouse access permissions"]
* @nextSteps ["Update line quantities", "Mark lines as picked", "Process line-level fulfillment"]
* @businessRules ["Lines are ordered by line number", "Supports pagination", "Includes quantity and item details"]
* @functionalArea "warehouse-and-fulfillment"
* @performance "Use pagination for pick tickets with many lines. Default ordering by line_number|ASC."
*/
list: async (pickTicketNo, params) => {
return executeRequest({
method: 'GET',
path: `/pick-tickets/${pickTicketNo}/lines`,
paramsSchema: schemas_1.PickTicketsLinesParamsSchema,
responseSchema: schemas_1.PickTicketsLinesResponseSchema,
}, params);
},
/**
* Get specific pick ticket line detail
* @description Returns detailed information for a specific line within a pick ticket including quantities, item details, and fulfillment status. Used for individual line tracking and updates.
*
* @fullPath api.orders.pickTickets.lines.get
* @service orders
* @domain warehouse-fulfillment
* @dataMethod pickTicketsData.lines.get - returns only the pick ticket line data without metadata
* @discoverable true
* @searchTerms ["pick ticket line detail", "single line item", "line detail", "individual picking line"]
* @relatedEndpoints ["api.orders.pickTickets.lines.list", "api.orders.pickTickets.get", "api.items.products.get"]
* @commonPatterns ["Get line detail", "View single line item", "Update line status", "Line-specific operations"]
* @workflow ["line-item-fulfillment", "individual-line-tracking", "line-status-updates"]
* @prerequisites ["Valid pick ticket number", "Valid line number", "Warehouse access permissions"]
* @nextSteps ["Update line quantities", "Mark line as picked", "Process line fulfillment"]
* @businessRules ["Line must exist in pick ticket", "Returns complete line details", "Includes item and quantity information"]
* @functionalArea "warehouse-and-fulfillment"
* @performance "Single line retrieval - efficient for detail operations"
*/
get: async (pickTicketNo, lineNumber) => {
return executeRequest({
method: 'GET',
path: `/pick-tickets/${pickTicketNo}/lines/${lineNumber}`,
responseSchema: schemas_1.PickTicketLineResponseSchema,
}, {});
},
},
};
}
/**
* Creates the pickTicketsData resource methods (data-only versions)
*/
function createPickTicketsDataResource(pickTickets) {
return {
/**
* Get only pick tickets data without response metadata
* @param params Same parameters as list() method
* @returns Promise<PickTicketData[]> Direct array of pick tickets
*/
list: async (params) => {
const response = await pickTickets.list(params);
return response.data;
},
/**
* Get only pick ticket detail data without response metadata
* @param pickTicketNo Pick ticket number to retrieve
* @returns Promise<PickTicketData> Direct pick ticket detail object
*/
get: async (pickTicketNo) => {
const response = await pickTickets.get(pickTicketNo);
return response.data;
},
lines: {
/**
* Get only pick ticket lines data without response metadata
* @param pickTicketNo Pick ticket number to retrieve lines for
* @param params Same parameters as list() method
* @returns Promise<PickTicketLineData[]> Direct array of pick ticket lines
*/
list: async (pickTicketNo, params) => {
const response = await pickTickets.lines.list(pickTicketNo, params);
return response.data;
},
/**
* Get only pick ticket line detail data without response metadata
* @param pickTicketNo Pick ticket number
* @param lineNumber Line number to retrieve
* @returns Promise<PickTicketLineData> Direct pick ticket line data object
*/
get: async (pickTicketNo, lineNumber) => {
const response = await pickTickets.lines.get(pickTicketNo, lineNumber);
return response.data;
},
},
};
}
//# sourceMappingURL=pick-tickets.js.map