This update introduces several utility functions in `utils.js` to improve the handling of ObjectId paths, schema types, and filtering logic. Key additions include `isObjectIdPath`, `getBaseProperty`, and `getFilterFieldKind`, which enhance the flexibility of property handling. Additionally, all route handlers in the finance and inventory modules have been refactored to support asynchronous operations, ensuring better performance and responsiveness when processing requests.
92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
import express from 'express';
|
|
import { isAuthenticated } from '../../keycloak.js';
|
|
import { getFilter, convertPropertiesString } from '../../utils.js';
|
|
|
|
const router = express.Router();
|
|
|
|
const listAllowedFilters = [
|
|
'name',
|
|
'tags',
|
|
'active',
|
|
'global',
|
|
'objectType',
|
|
'createdAt',
|
|
'updatedAt',
|
|
'_reference'
|
|
];
|
|
const propertiesAllowedFilters = ['documentSize', 'tags'];
|
|
import {
|
|
listDocumentTemplatesRouteHandler,
|
|
getDocumentTemplateRouteHandler,
|
|
editDocumentTemplateRouteHandler,
|
|
newDocumentTemplateRouteHandler,
|
|
deleteDocumentTemplateRouteHandler,
|
|
listDocumentTemplatesByPropertiesRouteHandler,
|
|
getDocumentTemplateStatsRouteHandler,
|
|
getDocumentTemplateHistoryRouteHandler,
|
|
getDocumentTemplatePropertyValuesRouteHandler,
|
|
searchDocumentTemplatesRouteHandler,
|
|
getDocumentTemplateNeighborsRouteHandler,
|
|
} from '../../services/management/documenttemplates.js';
|
|
|
|
// list of document templates
|
|
router.get('/', isAuthenticated, async (req, res) => {
|
|
const { page, limit, property, search, sort, order } = req.query;
|
|
const filter = await getFilter(req.query, listAllowedFilters);
|
|
listDocumentTemplatesRouteHandler(req, res, page, limit, property, filter, search, sort, order);
|
|
});
|
|
|
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
|
let properties = convertPropertiesString(req.query.properties);
|
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
|
var masterFilter = {};
|
|
if (req.query.masterFilter) {
|
|
masterFilter = JSON.parse(req.query.masterFilter);
|
|
}
|
|
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
|
});
|
|
|
|
router.get('/values', isAuthenticated, async (req, res) => {
|
|
const { property } = req.query;
|
|
getDocumentTemplatePropertyValuesRouteHandler(req, res, property);
|
|
});
|
|
|
|
router.get('/search', isAuthenticated, async (req, res) => {
|
|
const { search } = req.query;
|
|
searchDocumentTemplatesRouteHandler(req, res, search);
|
|
});
|
|
|
|
router.post('/', isAuthenticated, async (req, res) => {
|
|
newDocumentTemplateRouteHandler(req, res);
|
|
});
|
|
|
|
// get document template stats
|
|
router.get('/stats', isAuthenticated, async (req, res) => {
|
|
getDocumentTemplateStatsRouteHandler(req, res);
|
|
});
|
|
|
|
// get document template history
|
|
router.get('/history', isAuthenticated, async (req, res) => {
|
|
getDocumentTemplateHistoryRouteHandler(req, res);
|
|
});
|
|
|
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|
const { property, search, sort, order, id } = req.query;
|
|
const filter = await getFilter(req.query, listAllowedFilters);
|
|
getDocumentTemplateNeighborsRouteHandler(req, res, property, filter, search, sort, order, id);
|
|
});
|
|
|
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
|
getDocumentTemplateRouteHandler(req, res);
|
|
});
|
|
|
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
|
editDocumentTemplateRouteHandler(req, res);
|
|
});
|
|
|
|
router.delete('/:id', isAuthenticated, async (req, res) => {
|
|
deleteDocumentTemplateRouteHandler(req, res);
|
|
});
|
|
|
|
export default router;
|