All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit updates the allowed filters and sorters in multiple routes, including invoices, payment policies, inventory, management, and sales. It removes unnecessary filters, adds new ones for improved categorization, and ensures consistency in the data structure. These changes aim to streamline data retrieval and enhance the overall functionality of the application.
116 lines
4.0 KiB
JavaScript
116 lines
4.0 KiB
JavaScript
import express from 'express';
|
|
import { isAuthenticated } from '../../keycloak.js';
|
|
import { checkPermissions } from '../../database/permissions.js';
|
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
|
|
|
const router = express.Router();
|
|
|
|
const listAllowedFilters = [
|
|
'state',
|
|
'state.type',
|
|
'fromLocation',
|
|
'toLocation',
|
|
'postedAt',
|
|
'createdAt',
|
|
'updatedAt',
|
|
'_reference',
|
|
];
|
|
const listAllowedSorters = ['createdAt', 'postedAt', 'state', 'updatedAt'];
|
|
const propertiesAllowedFilters = ['state.type'];
|
|
import {
|
|
listStockTransfersRouteHandler,
|
|
getStockTransferRouteHandler,
|
|
editStockTransferRouteHandler,
|
|
editMultipleStockTransfersRouteHandler,
|
|
newStockTransferRouteHandler,
|
|
deleteStockTransferRouteHandler,
|
|
postStockTransferRouteHandler,
|
|
listStockTransfersByPropertiesRouteHandler,
|
|
getStockTransferStatsRouteHandler,
|
|
getStockTransferHistoryRouteHandler,
|
|
searchStockTransfersRouteHandler,
|
|
getStockTransferPropertyValuesRouteHandler,
|
|
|
|
getStockTransferNeighborsRouteHandler
|
|
} from '../../services/inventory/stocktransfers.js';
|
|
|
|
router.get('/', isAuthenticated, checkPermissions('stockTransfer', 'list'), async (req, res) => {
|
|
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
|
const filter = await getFilter(req.query, listAllowedFilters);
|
|
listStockTransfersRouteHandler(req, res, page, limit, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder);
|
|
});
|
|
|
|
router.get('/properties', checkPermissions('stockTransfer', 'list'), 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);
|
|
}
|
|
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
|
});
|
|
|
|
router.get(
|
|
'/values',
|
|
checkPermissions('stockTransfer', 'list'),
|
|
isAuthenticated,
|
|
async (req, res) => {
|
|
const { property } = req.query;
|
|
const filter = await getFilter(req.query, listAllowedFilters, true);
|
|
var masterFilter = {};
|
|
if (req.query.masterFilter) {
|
|
masterFilter = await getFilter(
|
|
JSON.parse(req.query.masterFilter),
|
|
listAllowedFilters,
|
|
true
|
|
);
|
|
}
|
|
getStockTransferPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
|
}
|
|
);
|
|
router.get('/search', checkPermissions('stockTransfer', 'list'), isAuthenticated, async (req, res) => {
|
|
const { search } = req.query;
|
|
searchStockTransfersRouteHandler(req, res, search);
|
|
});
|
|
|
|
|
|
router.post('/', isAuthenticated, checkPermissions('stockTransfer', 'new'), async (req, res) => {
|
|
newStockTransferRouteHandler(req, res);
|
|
});
|
|
|
|
router.get('/stats', isAuthenticated, async (req, res) => {
|
|
getStockTransferStatsRouteHandler(req, res);
|
|
});
|
|
|
|
router.get('/history', isAuthenticated, async (req, res) => {
|
|
getStockTransferHistoryRouteHandler(req, res);
|
|
});
|
|
|
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|
const { property, search, sortProperty, sortOrder, id } = req.query;
|
|
const filter = await getFilter(req.query, listAllowedFilters);
|
|
getStockTransferNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
|
});
|
|
|
|
router.get('/:id', isAuthenticated, checkPermissions('stockTransfer', 'info'), async (req, res) => {
|
|
getStockTransferRouteHandler(req, res);
|
|
});
|
|
|
|
router.put('/', isAuthenticated, checkPermissions('stockTransfer', 'edit'), async (req, res) => {
|
|
editMultipleStockTransfersRouteHandler(req, res);
|
|
});
|
|
|
|
router.put('/:id', isAuthenticated, checkPermissions('stockTransfer', 'edit'), async (req, res) => {
|
|
editStockTransferRouteHandler(req, res);
|
|
});
|
|
|
|
router.delete('/:id', isAuthenticated, async (req, res) => {
|
|
deleteStockTransferRouteHandler(req, res);
|
|
});
|
|
|
|
router.post('/:id/post', isAuthenticated, checkPermissions('stockTransfer', 'post'), async (req, res) => {
|
|
postStockTransferRouteHandler(req, res);
|
|
});
|
|
|
|
export default router;
|