UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

223 lines 8.8 kB
import { CreateAttributeRequestSchema, UpdateAttributeRequestSchema, AttributeResponseSchema, AttributeListResponseSchema, AttributesListParamsSchema, AttributeValuesListParamsSchema, CreateAttributeValueRequestSchema, UpdateAttributeValueRequestSchema, AttributeValueResponseSchema, AttributeValueListResponseSchema, } from '../schemas'; /** * Creates the attributes resource methods * OpenAPI Path: /attributes → attributes.* * @description Methods for managing product attributes */ export 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: AttributesListParamsSchema, responseSchema: 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: CreateAttributeRequestSchema, responseSchema: 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: 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: UpdateAttributeRequestSchema, responseSchema: 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: 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: AttributeValuesListParamsSchema, responseSchema: 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: CreateAttributeValueRequestSchema, responseSchema: 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: 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: UpdateAttributeValueRequestSchema, responseSchema: 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: AttributeValueResponseSchema, }); }, }, }; } /** * Creates the attributesData resource methods (data-only versions) */ export 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