@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
221 lines • 8.75 kB
JavaScript
import { CreateItemVariantHeaderRequestSchema, UpdateItemVariantHeaderRequestSchema, CreateItemVariantLineRequestSchema, UpdateItemVariantLineRequestSchema, ItemVariantListParamsSchema, ItemVariantHeaderResponseSchema, ItemVariantHeaderListResponseSchema, ItemVariantLineResponseSchema, ItemVariantLineListResponseSchema, } from '../schemas';
/**
* Creates the variants resource methods
* OpenAPI Path: /variants → variants.*
* @description Methods for managing product variants
*/
export function createVariantsResource(executeRequest) {
return {
/**
* List product variants
* @description Retrieve a list of product variants
* @fullPath api.items.variants.list
* @service items
* @domain inventory-management
* @discoverable true
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/variants',
paramsSchema: ItemVariantListParamsSchema,
responseSchema: ItemVariantHeaderListResponseSchema,
}, params);
},
/**
* Create product variant
* @description Create new product variant
* @fullPath api.items.variants.create
* @service items
* @domain inventory-management
* @discoverable true
*/
create: async (data) => {
return executeRequest({
method: 'POST',
path: '/variants',
paramsSchema: CreateItemVariantHeaderRequestSchema,
responseSchema: ItemVariantHeaderResponseSchema,
}, data);
},
/**
* Get product variant
* @description Get specific product variant details
* @fullPath api.items.variants.get
* @service items
* @domain inventory-management
* @discoverable true
*/
get: async (itemVariantHdrUid) => {
return executeRequest({
method: 'GET',
path: `/variants/${itemVariantHdrUid}`,
responseSchema: ItemVariantHeaderResponseSchema,
});
},
/**
* Update product variant
* @description Update existing product variant
* @fullPath api.items.variants.update
* @service items
* @domain inventory-management
* @discoverable true
*/
update: async (itemVariantHdrUid, data) => {
return executeRequest({
method: 'PUT',
path: `/variants/${itemVariantHdrUid}`,
paramsSchema: UpdateItemVariantHeaderRequestSchema,
responseSchema: ItemVariantHeaderResponseSchema,
}, data);
},
/**
* Delete product variant
* @description Delete existing product variant
* @fullPath api.items.variants.delete
* @service items
* @domain inventory-management
* @discoverable true
*/
delete: async (itemVariantHdrUid) => {
return executeRequest({
method: 'DELETE',
path: `/variants/${itemVariantHdrUid}`,
responseSchema: ItemVariantHeaderResponseSchema,
});
},
/**
* OpenAPI Path: /variants/{itemVariantHdrUid}/lines → variants.lines.*
* @description Nested path for variant lines
*/
lines: {
/**
* List variant lines
* @description Get all lines for a variant
* @fullPath api.items.variants.lines.list
* @service items
* @domain inventory-management
* @discoverable true
*/
list: async (itemVariantHdrUid) => {
return executeRequest({
method: 'GET',
path: `/variants/${itemVariantHdrUid}/lines`,
responseSchema: ItemVariantLineListResponseSchema,
});
},
/**
* Create variant line
* @description Add a new line to a variant
* @fullPath api.items.variants.lines.create
* @service items
* @domain inventory-management
* @discoverable true
*/
create: async (itemVariantHdrUid, data) => {
return executeRequest({
method: 'POST',
path: `/variants/${itemVariantHdrUid}/lines`,
paramsSchema: CreateItemVariantLineRequestSchema,
responseSchema: ItemVariantLineResponseSchema,
}, data);
},
/**
* Get variant line
* @description Get specific variant line details
* @fullPath api.items.variants.lines.get
* @service items
* @domain inventory-management
* @discoverable true
*/
get: async (itemVariantHdrUid, itemVariantLineUid) => {
return executeRequest({
method: 'GET',
path: `/variants/${itemVariantHdrUid}/lines/${itemVariantLineUid}`,
responseSchema: ItemVariantLineResponseSchema,
});
},
/**
* Update variant line
* @description Update existing variant line
* @fullPath api.items.variants.lines.update
* @service items
* @domain inventory-management
* @discoverable true
*/
update: async (itemVariantHdrUid, itemVariantLineUid, data) => {
return executeRequest({
method: 'PUT',
path: `/variants/${itemVariantHdrUid}/lines/${itemVariantLineUid}`,
paramsSchema: UpdateItemVariantLineRequestSchema,
responseSchema: ItemVariantLineResponseSchema,
}, data);
},
/**
* Delete variant line
* @description Remove a line from a variant
* @fullPath api.items.variants.lines.delete
* @service items
* @domain inventory-management
* @discoverable true
*/
delete: async (itemVariantHdrUid, itemVariantLineUid) => {
return executeRequest({
method: 'DELETE',
path: `/variants/${itemVariantHdrUid}/lines/${itemVariantLineUid}`,
responseSchema: ItemVariantLineResponseSchema,
});
},
},
};
}
/**
* Creates the variantsData resource methods (data-only versions)
*/
export function createVariantsDataResource(variants) {
return {
list: async (params) => {
const response = await variants.list(params);
return response.data;
},
create: async (data) => {
const response = await variants.create(data);
return response.data;
},
get: async (itemVariantHdrUid) => {
const response = await variants.get(itemVariantHdrUid);
return response.data;
},
update: async (itemVariantHdrUid, data) => {
const response = await variants.update(itemVariantHdrUid, data);
return response.data;
},
delete: async (itemVariantHdrUid) => {
const response = await variants.delete(itemVariantHdrUid);
return response.data;
},
lines: {
list: async (itemVariantHdrUid) => {
const response = await variants.lines.list(itemVariantHdrUid);
return response.data;
},
create: async (itemVariantHdrUid, data) => {
const response = await variants.lines.create(itemVariantHdrUid, data);
return response.data;
},
get: async (itemVariantHdrUid, itemVariantLineUid) => {
const response = await variants.lines.get(itemVariantHdrUid, itemVariantLineUid);
return response.data;
},
update: async (itemVariantHdrUid, itemVariantLineUid, data) => {
const response = await variants.lines.update(itemVariantHdrUid, itemVariantLineUid, data);
return response.data;
},
delete: async (itemVariantHdrUid, itemVariantLineUid) => {
const response = await variants.lines.delete(itemVariantHdrUid, itemVariantLineUid);
return response.data;
},
},
};
}
//# sourceMappingURL=variants.js.map