@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
121 lines • 4.8 kB
JavaScript
import { TransferListParamsSchema, TransferListResponseSchema, TransferGetResponseSchema, TransferCreateRequestSchema, TransferCreateResponseSchema, TransferUpdateRequestSchema, TransferUpdateResponseSchema, TransferDeleteResponseSchema, } from '../schemas';
/**
* Creates the transfer resource methods
* OpenAPI Path: /transfer → transfer.*
* @description Methods for managing general transfer operations for inventory movement between locations
*/
export function createTransferResource(executeRequest) {
return {
/**
* Retrieve a list of transfer documents with optional filtering
* @description Returns transfer documents with pagination and filtering by reference number or status
* @fullPath api.nexus.transfer.list
* @service nexus
* @domain warehouse-management
* @dataMethod transferData.list
* @discoverable true
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/transfer',
paramsSchema: TransferListParamsSchema,
responseSchema: TransferListResponseSchema,
}, params);
},
/**
* Retrieve details for a specific transfer document
* @description Returns complete details for a transfer document including JSON data
* @fullPath api.nexus.transfer.get
* @service nexus
* @domain warehouse-management
* @dataMethod transferData.get
* @discoverable true
*/
get: async (transferUid) => {
return executeRequest({
method: 'GET',
path: '/transfer/{transferUid}',
responseSchema: TransferGetResponseSchema,
}, undefined, { transferUid: String(transferUid) });
},
/**
* Create a new transfer document
* @description Creates a transfer document for inventory movement between locations
* @fullPath api.nexus.transfer.create
* @service nexus
* @domain warehouse-management
* @dataMethod transferData.create
* @discoverable true
*/
create: async (transferData) => {
return executeRequest({
method: 'POST',
path: '/transfer',
paramsSchema: TransferCreateRequestSchema,
responseSchema: TransferCreateResponseSchema,
}, transferData);
},
/**
* Update an existing transfer document
* @description Updates transfer status, process codes, and messages
* @fullPath api.nexus.transfer.update
* @service nexus
* @domain warehouse-management
* @dataMethod transferData.update
* @discoverable true
*/
update: async (transferUid, updateData) => {
return executeRequest({
method: 'PUT',
path: '/transfer/{transferUid}',
paramsSchema: TransferUpdateRequestSchema,
responseSchema: TransferUpdateResponseSchema,
}, updateData, { transferUid: String(transferUid) });
},
/**
* Soft delete a transfer document
* @description Marks a transfer document as deleted by setting status code to 700
* @fullPath api.nexus.transfer.delete
* @service nexus
* @domain warehouse-management
* @dataMethod transferData.delete
* @discoverable true
*/
delete: async (transferUid) => {
return executeRequest({
method: 'DELETE',
path: '/transfer/{transferUid}',
responseSchema: TransferDeleteResponseSchema,
}, undefined, { transferUid: String(transferUid) });
},
};
}
/**
* Creates the transferData resource methods (data-only versions)
*/
export function createTransferDataResource(transfer) {
return {
list: async (params) => {
const response = await transfer.list(params);
return response.data;
},
get: async (transferUid) => {
const response = await transfer.get(transferUid);
return response.data;
},
create: async (transferData) => {
const response = await transfer.create(transferData);
return response.data;
},
update: async (transferUid, updateData) => {
const response = await transfer.update(transferUid, updateData);
return response.data;
},
delete: async (transferUid) => {
const response = await transfer.delete(transferUid);
return response.data;
},
};
}
//# sourceMappingURL=transfer.js.map