UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

227 lines 8.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createAttributesResource = createAttributesResource; exports.createAttributesDataResource = createAttributesDataResource; const schemas_1 = require("../schemas"); /** * Creates the attributes resource methods * OpenAPI Path: /attributes → attributes.* * @description Methods for managing product attributes */ function createAttributesResource(executeRequest) { return { /** * List all attributes * @description Retrieve a paginated list of available attributes * @fullPath api.items.attributes.list * @service items * @domain inventory-management * @discoverable true * @dataMethod attributesData.list */ list: async (params) => { return executeRequest({ method: 'GET', path: '/attributes', paramsSchema: schemas_1.AttributesListParamsSchema, responseSchema: schemas_1.AttributeListResponseSchema, }, params); }, /** * Create new attribute * @description Create a new product attribute * @fullPath api.items.attributes.create * @service items * @domain inventory-management * @discoverable true */ create: async (data) => { return executeRequest({ method: 'POST', path: '/attributes', paramsSchema: schemas_1.CreateAttributeRequestSchema, responseSchema: schemas_1.AttributeResponseSchema, }, data); }, /** * Get attribute by ID * @description Retrieve specific attribute details * @fullPath api.items.attributes.get * @service items * @domain inventory-management * @discoverable true */ get: async (attributeUid) => { return executeRequest({ method: 'GET', path: `/attributes/${attributeUid}`, responseSchema: schemas_1.AttributeResponseSchema, }); }, /** * Update attribute * @description Update existing attribute * @fullPath api.items.attributes.update * @service items * @domain inventory-management * @discoverable true */ update: async (attributeUid, data) => { return executeRequest({ method: 'PUT', path: `/attributes/${attributeUid}`, paramsSchema: schemas_1.UpdateAttributeRequestSchema, responseSchema: schemas_1.AttributeResponseSchema, }, data); }, /** * Delete attribute * @description Delete existing attribute * @fullPath api.items.attributes.delete * @service items * @domain inventory-management * @discoverable true */ delete: async (attributeUid) => { return executeRequest({ method: 'DELETE', path: `/attributes/${attributeUid}`, responseSchema: schemas_1.AttributeResponseSchema, }); }, /** * OpenAPI Path: /attributes/{attributeUid}/values → attributes.values.* * @description Nested path for managing values within attributes */ values: { /** * List attribute values * @description List all values for a specific attribute * @fullPath api.items.attributes.values.list * @service items * @domain inventory-management * @discoverable true */ list: async (attributeUid, params) => { return executeRequest({ method: 'GET', path: `/attributes/${attributeUid}/values`, paramsSchema: schemas_1.AttributeValuesListParamsSchema, responseSchema: schemas_1.AttributeValueListResponseSchema, }, params); }, /** * Create attribute value * @description Create new value for an attribute * @fullPath api.items.attributes.values.create * @service items * @domain inventory-management * @discoverable true */ create: async (attributeUid, data) => { return executeRequest({ method: 'POST', path: `/attributes/${attributeUid}/values`, paramsSchema: schemas_1.CreateAttributeValueRequestSchema, responseSchema: schemas_1.AttributeValueResponseSchema, }, data); }, /** * Get attribute value * @description Get specific attribute value details * @fullPath api.items.attributes.values.get * @service items * @domain inventory-management * @discoverable true */ get: async (attributeUid, attributeValueUid) => { return executeRequest({ method: 'GET', path: `/attributes/${attributeUid}/values/${attributeValueUid}`, responseSchema: schemas_1.AttributeValueResponseSchema, }); }, /** * Update attribute value * @description Update existing attribute value * @fullPath api.items.attributes.values.update * @service items * @domain inventory-management * @discoverable true */ update: async (attributeUid, attributeValueUid, data) => { return executeRequest({ method: 'PUT', path: `/attributes/${attributeUid}/values/${attributeValueUid}`, paramsSchema: schemas_1.UpdateAttributeValueRequestSchema, responseSchema: schemas_1.AttributeValueResponseSchema, }, data); }, /** * Delete attribute value * @description Delete existing attribute value * @fullPath api.items.attributes.values.delete * @service items * @domain inventory-management * @discoverable true */ delete: async (attributeUid, attributeValueUid) => { return executeRequest({ method: 'DELETE', path: `/attributes/${attributeUid}/values/${attributeValueUid}`, responseSchema: schemas_1.AttributeValueResponseSchema, }); }, }, }; } /** * Creates the attributesData resource methods (data-only versions) */ function createAttributesDataResource(attributes) { return { list: async (params) => { const response = await attributes.list(params); return response.data; }, create: async (data) => { const response = await attributes.create(data); return response.data; }, get: async (attributeUid) => { const response = await attributes.get(attributeUid); return response.data; }, update: async (attributeUid, data) => { const response = await attributes.update(attributeUid, data); return response.data; }, delete: async (attributeUid) => { const response = await attributes.delete(attributeUid); return response.data; }, values: { list: async (attributeUid, params) => { const response = await attributes.values.list(attributeUid, params); return response.data; }, create: async (attributeUid, data) => { const response = await attributes.values.create(attributeUid, data); return response.data; }, get: async (attributeUid, attributeValueUid) => { const response = await attributes.values.get(attributeUid, attributeValueUid); return response.data; }, update: async (attributeUid, attributeValueUid, data) => { const response = await attributes.values.update(attributeUid, attributeValueUid, data); return response.data; }, delete: async (attributeUid, attributeValueUid) => { const response = await attributes.values.delete(attributeUid, attributeValueUid); return response.data; }, }, }; } //# sourceMappingURL=attributes.js.map