Refactor allowedFilters in inventory and management routes to improve consistency and readability. Cleaned up whitespace and ensured all filters are properly formatted for better query handling across purchase orders, shipments, and filament SKUs.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit

This commit is contained in:
Tom Butcher 2026-08-01 18:25:59 +01:00
parent c0112d61fb
commit f69c88926c
4 changed files with 74 additions and 83 deletions

View File

@ -5,32 +5,32 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router();
const listAllowedFilters = [
'vendor',
'state',
'value',
'vendor._id',
'totalAmount',
'totalAmountWithTax',
'totalTaxAmount',
'shippingAmount',
'shippingAmountWithTax',
'grandTotalAmount',
'createdAt',
'updatedAt',
'_reference'
];
'vendor',
'state',
'value',
'vendor._id',
'totalAmount',
'totalAmountWithTax',
'totalTaxAmount',
'shippingAmount',
'shippingAmountWithTax',
'grandTotalAmount',
'createdAt',
'updatedAt',
'_reference',
];
const propertiesAllowedFilters = [
'vendor',
'state.type',
'value',
'vendor._id',
'totalAmount',
'totalAmountWithTax',
'totalTaxAmount',
'shippingAmount',
'shippingAmountWithTax',
'grandTotalAmount',
];
'vendor',
'state.type',
'value',
'vendor._id',
'totalAmount',
'totalAmountWithTax',
'totalTaxAmount',
'shippingAmount',
'shippingAmountWithTax',
'grandTotalAmount',
];
import {
listPurchaseOrdersRouteHandler,
getPurchaseOrderRouteHandler,
@ -46,14 +46,13 @@ import {
cancelPurchaseOrderRouteHandler,
searchPurchaseOrdersRouteHandler,
getPurchaseOrderPropertyValuesRouteHandler,
getPurchaseOrderNeighborsRouteHandler
getPurchaseOrderNeighborsRouteHandler,
} from '../../services/inventory/purchaseorders.js';
// list of purchase orders
router.get('/', isAuthenticated, (req, res) => {
const { page, limit, property, search, sort, order } = req.query;
const filter = getFilter(req.query, listAllowedFilters);
const filter = getFilter(req.query, listAllowedFilters);
listPurchaseOrdersRouteHandler(req, res, page, limit, property, filter, search, sort, order);
});
@ -62,7 +61,7 @@ router.get('/properties', isAuthenticated, (req, res) => {
const filter = getFilter(req.query, propertiesAllowedFilters, false);
var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = getFilter(JSON.parse(req.query.masterFilter), allowedFilters, true);
masterFilter = getFilter(JSON.parse(req.query.masterFilter), propertiesAllowedFilters, true);
}
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
});
@ -76,7 +75,6 @@ router.get('/search', isAuthenticated, (req, res) => {
searchPurchaseOrdersRouteHandler(req, res, search);
});
router.post('/', isAuthenticated, (req, res) => {
newPurchaseOrderRouteHandler(req, res);
});

View File

@ -5,24 +5,24 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router();
const listAllowedFilters = [
'orderType',
'order',
'state',
'courierService',
'order._id',
'taxRate',
'createdAt',
'updatedAt',
'_reference'
];
'orderType',
'order',
'state',
'courierService',
'order._id',
'taxRate',
'createdAt',
'updatedAt',
'_reference',
];
const propertiesAllowedFilters = [
'orderType',
'order',
'state.type',
'courierService',
'order._id',
'taxRate',
];
'orderType',
'order',
'state.type',
'courierService',
'order._id',
'taxRate',
];
import {
listShipmentsRouteHandler,
getShipmentRouteHandler,
@ -38,14 +38,13 @@ import {
cancelShipmentRouteHandler,
searchShipmentsRouteHandler,
getShipmentPropertyValuesRouteHandler,
getShipmentNeighborsRouteHandler
getShipmentNeighborsRouteHandler,
} from '../../services/inventory/shipments.js';
// list of shipments
router.get('/', isAuthenticated, (req, res) => {
const { page, limit, property, search, sort, order } = req.query;
const filter = getFilter(req.query, listAllowedFilters);
const filter = getFilter(req.query, listAllowedFilters);
listShipmentsRouteHandler(req, res, page, limit, property, filter, search, sort, order);
});
@ -54,7 +53,7 @@ router.get('/properties', isAuthenticated, (req, res) => {
const filter = getFilter(req.query, propertiesAllowedFilters, false);
var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = getFilter(JSON.parse(req.query.masterFilter), allowedFilters, true);
masterFilter = getFilter(JSON.parse(req.query.masterFilter), propertiesAllowedFilters, true);
}
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
});
@ -68,7 +67,6 @@ router.get('/search', isAuthenticated, (req, res) => {
searchShipmentsRouteHandler(req, res, search);
});
router.post('/', isAuthenticated, (req, res) => {
newShipmentRouteHandler(req, res);
});

View File

@ -5,19 +5,19 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router();
const listAllowedFilters = [
'_id',
'barcode',
'filament',
'filament._id',
'name',
'color',
'cost',
'costWithTax',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['filament', 'filament._id'];
'_id',
'barcode',
'filament',
'filament._id',
'name',
'color',
'cost',
'costWithTax',
'createdAt',
'updatedAt',
'_reference',
];
const propertiesAllowedFilters = ['filament', 'filament._id', 'diameter'];
import {
listFilamentSkusRouteHandler,
getFilamentSkuRouteHandler,
@ -29,13 +29,12 @@ import {
getFilamentSkuHistoryRouteHandler,
searchFilamentSkusRouteHandler,
getFilamentSkuPropertyValuesRouteHandler,
getFilamentSkuNeighborsRouteHandler
getFilamentSkuNeighborsRouteHandler,
} from '../../services/management/filamentskus.js';
router.get('/', isAuthenticated, (req, res) => {
const { page, limit, property, search, sort, order } = req.query;
const filter = getFilter(req.query, listAllowedFilters);
const filter = getFilter(req.query, listAllowedFilters);
listFilamentSkusRouteHandler(req, res, page, limit, property, filter, search, sort, order);
});
@ -58,7 +57,6 @@ router.get('/search', isAuthenticated, (req, res) => {
searchFilamentSkusRouteHandler(req, res, search);
});
router.post('/', isAuthenticated, (req, res) => {
newFilamentSkuRouteHandler(req, res);
});

View File

@ -5,14 +5,14 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router();
const listAllowedFilters = [
'client',
'state',
'value',
'client._id',
'createdAt',
'updatedAt',
'_reference'
];
'client',
'state',
'value',
'client._id',
'createdAt',
'updatedAt',
'_reference',
];
const propertiesAllowedFilters = ['client', 'state.type', 'value', 'client._id'];
import {
listSalesOrdersRouteHandler,
@ -29,14 +29,13 @@ import {
cancelSalesOrderRouteHandler,
searchSalesOrdersRouteHandler,
getSalesOrderPropertyValuesRouteHandler,
getSalesOrderNeighborsRouteHandler
getSalesOrderNeighborsRouteHandler,
} from '../../services/sales/salesorders.js';
// list of sales orders
router.get('/', isAuthenticated, (req, res) => {
const { page, limit, property, search, sort, order } = req.query;
const filter = getFilter(req.query, listAllowedFilters);
const filter = getFilter(req.query, listAllowedFilters);
listSalesOrdersRouteHandler(req, res, page, limit, property, filter, search, sort, order);
});
@ -45,7 +44,7 @@ router.get('/properties', isAuthenticated, (req, res) => {
const filter = getFilter(req.query, propertiesAllowedFilters, false);
var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = getFilter(JSON.parse(req.query.masterFilter), allowedFilters, true);
masterFilter = getFilter(JSON.parse(req.query.masterFilter), propertiesAllowedFilters, true);
}
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
});
@ -59,7 +58,6 @@ router.get('/search', isAuthenticated, (req, res) => {
searchSalesOrdersRouteHandler(req, res, search);
});
router.post('/', isAuthenticated, (req, res) => {
newSalesOrderRouteHandler(req, res);
});
@ -110,4 +108,3 @@ router.post('/:id/cancel', isAuthenticated, async (req, res) => {
});
export default router;