UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

246 lines 12 kB
import { JobPriceHdrListParamsSchema, JobPriceHdrListResponseSchema, JobPriceHdrGetResponseSchema, JobPriceLineListParamsSchema, JobPriceLineListResponseSchema, JobPriceLineGetResponseSchema, } from '../schemas'; /** * Creates the jobPriceHdr resource methods * OpenAPI Path: /job-price-hdr → jobPriceHdr.* * @description Methods for managing job-based pricing contracts and agreements */ export function createJobPriceHdrResource(executeRequest) { return { /** * List job price headers with filtering and pagination * @description Retrieves job price headers with optional search, filtering, and pagination * @fullPath api.pricing.jobPriceHdr.list * @service pricing * @domain job-pricing * @dataMethod jobPriceHdrData.list * @discoverable true * @searchTerms ["job price header", "list job headers", "job pricing", "pricing contracts"] * @relatedEndpoints ["api.pricing.jobPriceHdr.get", "api.pricing.jobPriceHdr.lines.list"] * @commonPatterns ["list job headers", "search job headers", "job pricing list"] * @param params Optional filtering and pagination parameters * @returns Paginated list of job price headers with total count * @throws ValidationError When parameters are invalid or response is malformed * @example * ```typescript * // Get all job price headers * const headers = await client.jobPriceHdr.list(); * * // Search and filter * const filtered = await client.jobPriceHdr.list({ * q: 'contract', * limit: 25, * orderBy: 'job_no|ASC' * }); * * console.log(`Found ${filtered.total} job price headers`); * filtered.data.forEach(header => { * console.log(`${header.job_no}: ${header.job_description}`); * }); * ``` */ list: async (params) => { return executeRequest({ method: 'GET', path: '/job-price-hdr', paramsSchema: JobPriceHdrListParamsSchema, responseSchema: JobPriceHdrListResponseSchema, }, params); }, /** * Get specific job price header details * @description Retrieves detailed information for a specific job price header * @fullPath api.pricing.jobPriceHdr.get * @service pricing * @domain job-pricing * @dataMethod jobPriceHdrData.get * @discoverable true * @searchTerms ["job price header", "get job header", "job pricing details"] * @relatedEndpoints ["api.pricing.jobPriceHdr.list", "api.pricing.jobPriceHdr.lines.get"] * @commonPatterns ["get job header", "job header details", "job pricing details"] * @param jobPriceHdrUid Job price header unique identifier * @returns Complete job price header details including contract information * @throws ValidationError When response is malformed * @example * ```typescript * const header = await client.jobPriceHdr.get(12345); * console.log('Job:', header.job_no, header.job_description); * console.log('Customer:', header.customer_id); * console.log('Contract:', header.contract_no); * console.log('Period:', header.start_date, 'to', header.end_date); * ``` */ get: async (jobPriceHdrUid) => { return executeRequest({ method: 'GET', path: '/job-price-hdr/{id}', responseSchema: JobPriceHdrGetResponseSchema, }, undefined, { id: String(jobPriceHdrUid) }); }, /** * Job Price Line endpoints * @description Methods for managing individual line items within job pricing contracts * @fullPath api.pricing.jobPriceHdr.lines * @service pricing * @domain job-pricing-lines * @discoverable true * @searchTerms ["job price lines", "job line items", "pricing line items", "contract lines"] * @relatedEndpoints ["api.pricing.jobPriceHdr"] * @commonPatterns ["list job lines", "get job line", "job line items"] */ lines: { /** * List job price lines for a specific header * @description Retrieves job price lines with optional filtering by status, inventory, and other criteria * @fullPath api.pricing.jobPriceHdr.lines.list * @service pricing * @domain job-pricing-lines * @dataMethod jobPriceHdrData.lines.list * @discoverable true * @searchTerms ["job price lines", "list job lines", "job line items", "contract lines"] * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.get"] * @commonPatterns ["list job lines", "search job lines", "job line items list"] * @param jobPriceHdrUid Job price header unique identifier * @param params Optional filtering and pagination parameters * @returns Paginated list of job price lines with total count * @throws ValidationError When parameters are invalid or response is malformed * @example * ```typescript * // Get all lines for a job * const lines = await client.jobPriceHdr.lines.list(12345); * * // Filter by status and inventory * const activeLines = await client.jobPriceHdr.lines.list(12345, { * statusCd: 704, // Active * invMastUid: 11111, * limit: 50 * }); * * console.log(`Found ${activeLines.total} active lines`); * activeLines.data.forEach(line => { * console.log(`${line.item_id}: $${line.price} (${line.uom})`); * }); * ``` */ list: async (jobPriceHdrUid, params) => { return executeRequest({ method: 'GET', path: '/job-price-hdr/{id}/lines', paramsSchema: JobPriceLineListParamsSchema, responseSchema: JobPriceLineListResponseSchema, }, params, { id: String(jobPriceHdrUid) }); }, /** * Get specific job price line details * @description Retrieves detailed information for a specific job price line including pricing method and cost basis * @fullPath api.pricing.jobPriceHdr.lines.get * @service pricing * @domain job-pricing-lines * @dataMethod jobPriceHdrData.lines.get * @discoverable true * @searchTerms ["job price line", "get job line", "job line details", "pricing line"] * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.list"] * @commonPatterns ["get job line", "job line details", "pricing line details"] * @param jobPriceHdrUid Job price header unique identifier * @param jobPriceLineUid Job price line unique identifier * @returns Complete job price line details including extended pricing information * @throws ValidationError When response is malformed * @example * ```typescript * const line = await client.jobPriceHdr.lines.get(12345, 67890); * console.log('Item:', line.item_id, line.item_description); * console.log('Price:', line.price, line.uom); * console.log('Quantities - Ordered:', line.qty_ordered, 'Max:', line.qty_maximum); * console.log('Margins - Discount:', line.discount_percent, 'Margin:', line.margin_percent); * ``` */ get: async (jobPriceHdrUid, jobPriceLineUid) => { return executeRequest({ method: 'GET', path: '/job-price-hdr/{hdrId}/lines/{lineId}', responseSchema: JobPriceLineGetResponseSchema, }, undefined, { hdrId: String(jobPriceHdrUid), lineId: String(jobPriceLineUid) }); }, }, }; } /** * Creates the jobPriceHdrData resource methods (data-only versions) */ export function createJobPriceHdrDataResource(jobPriceHdr) { return { /** * List job price headers data without response metadata * @fullPath api.pricing.jobPriceHdrData.list * @service pricing * @domain job-pricing * @discoverable true * @searchTerms ["job price header data", "list job header data", "job pricing data"] * @relatedEndpoints ["api.pricing.jobPriceHdr.list"] * @commonPatterns ["list job header data", "job pricing data list"] * @returns Promise<JobPriceHdr[]> Job price headers data directly */ list: async (params) => { const response = await jobPriceHdr.list(params); return response.data; }, /** * Get job price header data without response metadata * @fullPath api.pricing.jobPriceHdrData.get * @service pricing * @domain job-pricing * @discoverable true * @searchTerms ["job price header data", "get job header data", "job pricing data"] * @relatedEndpoints ["api.pricing.jobPriceHdr.get"] * @commonPatterns ["get job header data", "job pricing data"] * @returns Promise<JobPriceHdr> Job price header data directly */ get: async (jobPriceHdrUid) => { const response = await jobPriceHdr.get(jobPriceHdrUid); return response.data; }, /** * Job Price Lines Data Operations * @description Direct access to job price lines data without response metadata * @fullPath api.pricing.jobPriceHdrData.lines * @service pricing * @domain job-pricing-lines * @discoverable true * @searchTerms ["job price lines data", "job line data", "pricing line data"] * @relatedEndpoints ["api.pricing.jobPriceHdr.lines"] * @commonPatterns ["get job line data", "job pricing line data"] */ lines: { /** * List job price lines data without response metadata * @fullPath api.pricing.jobPriceHdrData.lines.list * @service pricing * @domain job-pricing-lines * @discoverable true * @searchTerms ["job price lines data", "list job line data", "pricing line data"] * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.list"] * @commonPatterns ["list job line data", "job pricing line data list"] * @returns Promise<JobPriceLine[]> Job price lines data directly */ list: async (jobPriceHdrUid, params) => { const response = await jobPriceHdr.lines.list(jobPriceHdrUid, params); return response.data; }, /** * Get job price line data without response metadata * @fullPath api.pricing.jobPriceHdrData.lines.get * @service pricing * @domain job-pricing-lines * @discoverable true * @searchTerms ["job price line data", "get job line data", "pricing line data"] * @relatedEndpoints ["api.pricing.jobPriceHdr.lines.get"] * @commonPatterns ["get job line data", "job pricing line data"] * @returns Promise<JobPriceLine> Job price line data directly */ get: async (jobPriceHdrUid, jobPriceLineUid) => { const response = await jobPriceHdr.lines.get(jobPriceHdrUid, jobPriceLineUid); return response.data; }, }, }; } //# sourceMappingURL=job-price-hdr.js.map