@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
149 lines • 6.34 kB
JavaScript
import { BinTransferListParamsSchema, BinTransferListResponseSchema, BinTransferGetResponseSchema, BinTransferStatusResponseSchema, BinTransferCreateRequestSchema, BinTransferCreateResponseSchema, BinTransferUpdateRequestSchema, BinTransferUpdateResponseSchema, BinTransferDeleteResponseSchema, } from '../schemas';
/**
* Creates the binTransfer resource methods
* OpenAPI Path: /bin-transfer → binTransfer.*
* @description Methods for managing bin transfers - movement of inventory between bins within the same location
*/
export function createBinTransferResource(executeRequest) {
return {
/**
* Retrieve a list of bin transfer headers with optional filtering
* @description Returns all bin transfer headers with pagination and status filtering support
* @fullPath api.nexus.binTransfer.list
* @service nexus
* @domain warehouse-management
* @dataMethod binTransferData.list
* @discoverable true
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/bin-transfer',
paramsSchema: BinTransferListParamsSchema,
responseSchema: BinTransferListResponseSchema,
}, params);
},
/**
* Retrieve details for a specific bin transfer header
* @description Returns complete details for a bin transfer including JSON data and properties
* @fullPath api.nexus.binTransfer.get
* @service nexus
* @domain warehouse-management
* @dataMethod binTransferData.get
* @discoverable true
*/
get: async (binTransferHdrUid) => {
return executeRequest({
method: 'GET',
path: '/bin-transfer/{binTransferHdrUid}',
responseSchema: BinTransferGetResponseSchema,
}, undefined, { binTransferHdrUid: String(binTransferHdrUid) });
},
/**
* Status sub-endpoints for bin transfers
* @description Methods for retrieving bin transfer status and line item details
*/
status: {
/**
* Retrieve bin transfer status with detailed line items
* @description Returns complete bin transfer header with associated line items for status checking
* @fullPath api.nexus.binTransfer.status.get
* @service nexus
* @domain warehouse-management
* @dataMethod binTransferData.status.get
* @discoverable true
*/
get: async (binTransferHdrUid) => {
return executeRequest({
method: 'GET',
path: '/bin-transfer/{binTransferHdrUid}/status',
responseSchema: BinTransferStatusResponseSchema,
}, undefined, { binTransferHdrUid: String(binTransferHdrUid) });
},
},
/**
* Create a new bin transfer header with associated line items
* @description Creates a bin transfer with complete transfer line items for inventory movement
* @fullPath api.nexus.binTransfer.create
* @service nexus
* @domain warehouse-management
* @dataMethod binTransferData.create
* @discoverable true
*/
create: async (transferData) => {
return executeRequest({
method: 'POST',
path: '/bin-transfer',
paramsSchema: BinTransferCreateRequestSchema,
responseSchema: BinTransferCreateResponseSchema,
}, transferData);
},
/**
* Update an existing bin transfer header
* @description Updates bin transfer status, process codes, and additional data
* @fullPath api.nexus.binTransfer.update
* @service nexus
* @domain warehouse-management
* @dataMethod binTransferData.update
* @discoverable true
*/
update: async (binTransferHdrUid, updateData) => {
return executeRequest({
method: 'PUT',
path: '/bin-transfer/{binTransferHdrUid}',
paramsSchema: BinTransferUpdateRequestSchema,
responseSchema: BinTransferUpdateResponseSchema,
}, updateData, { binTransferHdrUid: String(binTransferHdrUid) });
},
/**
* Soft delete a bin transfer header
* @description Marks a bin transfer as deleted by setting status code to 700
* @fullPath api.nexus.binTransfer.delete
* @service nexus
* @domain warehouse-management
* @dataMethod binTransferData.delete
* @discoverable true
*/
delete: async (binTransferHdrUid) => {
return executeRequest({
method: 'DELETE',
path: '/bin-transfer/{binTransferHdrUid}',
responseSchema: BinTransferDeleteResponseSchema,
}, undefined, { binTransferHdrUid: String(binTransferHdrUid) });
},
};
}
/**
* Creates the binTransferData resource methods (data-only versions)
*/
export function createBinTransferDataResource(binTransfer) {
return {
list: async (params) => {
const response = await binTransfer.list(params);
return response.data;
},
get: async (binTransferHdrUid) => {
const response = await binTransfer.get(binTransferHdrUid);
return response.data;
},
status: {
get: async (binTransferHdrUid) => {
const response = await binTransfer.status.get(binTransferHdrUid);
return response.data;
},
},
create: async (transferData) => {
const response = await binTransfer.create(transferData);
return response.data;
},
update: async (binTransferHdrUid, updateData) => {
const response = await binTransfer.update(binTransferHdrUid, updateData);
return response.data;
},
delete: async (binTransferHdrUid) => {
const response = await binTransfer.delete(binTransferHdrUid);
return response.data;
},
};
}
//# sourceMappingURL=bin-transfer.js.map