UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

99 lines 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createContractsResource = createContractsResource; exports.createContractsDataResource = createContractsDataResource; const schemas_1 = require("../schemas"); /** * Creates the contracts resource methods * OpenAPI Path: /contracts → contracts.* * @description Methods for managing contract items */ function createContractsResource(executeRequest) { return { /** * List contract item attributes * @description List the attributes for contract items * @fullPath api.items.contracts.attributes.list * @service items * @domain contract-management * @discoverable true * @dataMethod contractsData.attributes.list */ attributes: { /** * Get contract item attributes * @description List the attributes for contract items by job number * @fullPath api.items.contracts.attributes.list * @service items * @domain contract-management * @discoverable true * @dataMethod contractsData.attributes.list * @searchTerms ["contract", "attributes", "job", "items", "properties"] * @relatedEndpoints ["contracts.items.list", "attributes.list", "categories.attributes.list"] * @commonPatterns ["Get contract item attributes for job", "List contract properties"] * @workflow ["contract-management", "item-configuration"] * @prerequisites ["Valid job number", "Bearer token", "x-site-id header"] * @nextSteps ["Use attributes for filtering contract items", "Configure item properties"] * @businessRules ["Job number must exist", "Returns all available attributes for contract items"] * @functionalArea "contract-management" * @crossSite false * @caching "5 minutes - attributes change infrequently" * @performance "Fast - simple lookup operation" */ list: async (jobNo) => { return executeRequest({ method: 'GET', path: `/contracts/${jobNo}/attributes`, responseSchema: schemas_1.ContractsAttributesResponseSchema, }); }, }, /** * List contract items * @description List contracts items for a job with filtering and search capabilities * @fullPath api.items.contracts.items.list * @service items * @domain contract-management * @discoverable true * @dataMethod contractsData.items.list */ items: { /** * List contract items for a job * @description List contracts items for a job with extensive filtering options * @fullPath api.items.contracts.items.list * @service items * @domain contract-management * @discoverable true */ list: async (jobNo, params) => { return executeRequest({ method: 'GET', path: `/contracts/${jobNo}/items`, paramsSchema: schemas_1.ContractsItemsParamsSchema, responseSchema: schemas_1.ContractsItemsResponseSchema, }, { ...params, jobNo }); }, }, }; } /** * Creates the contractsData resource methods (data-only versions) */ function createContractsDataResource(contracts) { return { attributes: { list: async (jobNo) => { const response = await contracts.attributes.list(jobNo); return response.data; }, }, items: { list: async (jobNo, params) => { const response = await contracts.items.list(jobNo, params); return response.data; }, }, }; } //# sourceMappingURL=contracts.js.map