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