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