Refactor filter handling in various routes to include master filter support

This commit updates multiple routes across the management and inventory modules to enhance the handling of property value requests. The `/values` endpoints are modified to incorporate a filtering mechanism that allows for both a standard filter and an optional master filter, improving the flexibility and accuracy of data retrieval. Additionally, debug logging statements are added to assist in tracking the filter parameters during requests. This refactor aims to streamline the data fetching process and improve the overall user experience when interacting with the API.
This commit is contained in:
Tom Butcher 2026-08-30 12:25:10 +01:00
parent 933d76969f
commit 6a730294b1
99 changed files with 1369 additions and 285 deletions

View File

@ -84,10 +84,24 @@ router.get('/properties', checkPermissions('invoice', 'list'), isAuthenticated,
listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('invoice', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getInvoicePropertyValuesRouteHandler(req, res, property); checkPermissions('invoice', 'list'),
}); isAuthenticated,
async (req, res) => {
const { property } = req.query;
const filter = await getFilter(req.query, listAllowedFilters, true, invoiceModel);
var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = await getFilter(
JSON.parse(req.query.masterFilter),
listAllowedFilters,
true, invoiceModel
);
}
getInvoicePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('invoice', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('invoice', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchInvoicesRouteHandler(req, res, search); searchInvoicesRouteHandler(req, res, search);

View File

@ -65,7 +65,17 @@ router.get(
checkPermissions('paymentPolicy', 'list'), checkPermissions('paymentPolicy', 'list'),
isAuthenticated, isAuthenticated,
async (req, res) => { async (req, res) => {
getPaymentPolicyPropertyValuesRouteHandler(req, res, req.query.property); 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
);
}
getPaymentPolicyPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
} }
); );

View File

@ -65,10 +65,24 @@ router.get('/properties', checkPermissions('payment', 'list'), isAuthenticated,
listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('payment', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPaymentPropertyValuesRouteHandler(req, res, property); checkPermissions('payment', '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
);
}
getPaymentPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('payment', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('payment', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPaymentsRouteHandler(req, res, search); searchPaymentsRouteHandler(req, res, search);

View File

@ -50,10 +50,24 @@ router.get('/properties', checkPermissions('taxRecord', 'list'), isAuthenticated
listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('taxRecord', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getTaxRecordPropertyValuesRouteHandler(req, res, property); checkPermissions('taxRecord', '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
);
}
getTaxRecordPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('taxRecord', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('taxRecord', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchTaxRecordsRouteHandler(req, res, search); searchTaxRecordsRouteHandler(req, res, search);

View File

@ -60,10 +60,24 @@ router.get('/properties', checkPermissions('filamentStock', 'list'), isAuthentic
listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('filamentStock', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getFilamentStockPropertyValuesRouteHandler(req, res, property); checkPermissions('filamentStock', '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
);
}
getFilamentStockPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('filamentStock', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('filamentStock', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchFilamentStocksRouteHandler(req, res, search); searchFilamentStocksRouteHandler(req, res, search);

View File

@ -74,10 +74,24 @@ router.get('/properties', checkPermissions('orderItem', 'list'), isAuthenticated
listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('orderItem', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getOrderItemPropertyValuesRouteHandler(req, res, property); checkPermissions('orderItem', '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
);
}
getOrderItemPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('orderItem', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('orderItem', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchOrderItemsRouteHandler(req, res, search); searchOrderItemsRouteHandler(req, res, search);

View File

@ -52,10 +52,24 @@ router.get('/properties', checkPermissions('partStock', 'list'), isAuthenticated
listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('partStock', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPartStockPropertyValuesRouteHandler(req, res, property); checkPermissions('partStock', '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
);
}
getPartStockPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('partStock', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('partStock', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPartStocksRouteHandler(req, res, search); searchPartStocksRouteHandler(req, res, search);

View File

@ -51,10 +51,24 @@ router.get('/properties', checkPermissions('productStock', 'list'), isAuthentica
listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('productStock', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getProductStockPropertyValuesRouteHandler(req, res, property); checkPermissions('productStock', '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
);
}
getProductStockPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('productStock', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('productStock', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchProductStocksRouteHandler(req, res, search); searchProductStocksRouteHandler(req, res, search);

View File

@ -78,10 +78,24 @@ router.get('/properties', checkPermissions('purchaseOrder', 'list'), isAuthentic
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('purchaseOrder', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPurchaseOrderPropertyValuesRouteHandler(req, res, property); checkPermissions('purchaseOrder', '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
);
}
getPurchaseOrderPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('purchaseOrder', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('purchaseOrder', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPurchaseOrdersRouteHandler(req, res, search); searchPurchaseOrdersRouteHandler(req, res, search);

View File

@ -83,10 +83,24 @@ router.get('/properties', checkPermissions('shipment', 'list'), isAuthenticated,
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('shipment', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getShipmentPropertyValuesRouteHandler(req, res, property); checkPermissions('shipment', '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
);
}
getShipmentPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('shipment', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('shipment', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchShipmentsRouteHandler(req, res, search); searchShipmentsRouteHandler(req, res, search);

View File

@ -41,10 +41,24 @@ router.get('/properties', checkPermissions('stockEvent', 'list'), isAuthenticate
listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('stockEvent', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getStockEventPropertyValuesRouteHandler(req, res, property); checkPermissions('stockEvent', '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
);
}
getStockEventPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('stockEvent', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('stockEvent', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchStockEventsRouteHandler(req, res, search); searchStockEventsRouteHandler(req, res, search);

View File

@ -40,10 +40,24 @@ router.get('/properties', checkPermissions('stockLocation', 'list'), isAuthentic
listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('stockLocation', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getStockLocationPropertyValuesRouteHandler(req, res, property); checkPermissions('stockLocation', '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
);
}
getStockLocationPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('stockLocation', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('stockLocation', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchStockLocationsRouteHandler(req, res, search); searchStockLocationsRouteHandler(req, res, search);

View File

@ -49,10 +49,24 @@ router.get('/properties', checkPermissions('stockTransfer', 'list'), isAuthentic
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('stockTransfer', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getStockTransferPropertyValuesRouteHandler(req, res, property); 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) => { router.get('/search', checkPermissions('stockTransfer', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchStockTransfersRouteHandler(req, res, search); searchStockTransfersRouteHandler(req, res, search);

View File

@ -46,10 +46,24 @@ router.get('/properties', checkPermissions('appPassword', 'list'), isAuthenticat
listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('appPassword', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getAppPasswordPropertyValuesRouteHandler(req, res, property); checkPermissions('appPassword', '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
);
}
getAppPasswordPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('appPassword', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('appPassword', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -50,10 +50,24 @@ router.get('/properties', checkPermissions('courier', 'list'), isAuthenticated,
listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('courier', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getCourierPropertyValuesRouteHandler(req, res, property); checkPermissions('courier', '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
);
}
getCourierPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('courier', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('courier', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -76,10 +76,24 @@ router.get('/properties', checkPermissions('courierService', 'list'), isAuthenti
listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('courierService', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getCourierServicePropertyValuesRouteHandler(req, res, property); checkPermissions('courierService', '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
);
}
getCourierServicePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('courierService', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('courierService', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -49,10 +49,24 @@ router.get('/properties', checkPermissions('documentJob', 'list'), isAuthenticat
listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('documentJob', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getDocumentJobPropertyValuesRouteHandler(req, res, property); checkPermissions('documentJob', '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
);
}
getDocumentJobPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('documentJob', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('documentJob', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -49,10 +49,24 @@ router.get('/properties', checkPermissions('documentPrinter', 'list'), isAuthent
listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('documentPrinter', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getDocumentPrinterPropertyValuesRouteHandler(req, res, property); checkPermissions('documentPrinter', '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
);
}
getDocumentPrinterPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('documentPrinter', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('documentPrinter', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -64,10 +64,24 @@ router.get('/properties', checkPermissions('documentSize', 'list'), isAuthentica
listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('documentSize', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getDocumentSizePropertyValuesRouteHandler(req, res, property); checkPermissions('documentSize', '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
);
}
getDocumentSizePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('documentSize', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('documentSize', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -66,10 +66,24 @@ router.get('/properties', checkPermissions('documentTemplate', 'list'), isAuthen
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('documentTemplate', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getDocumentTemplatePropertyValuesRouteHandler(req, res, property); checkPermissions('documentTemplate', '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
);
}
getDocumentTemplatePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('documentTemplate', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('documentTemplate', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -70,10 +70,24 @@ router.get('/properties', checkPermissions('filament', 'list'), isAuthenticated,
listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('filament', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getFilamentPropertyValuesRouteHandler(req, res, property); checkPermissions('filament', '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
);
}
getFilamentPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('filament', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('filament', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -59,10 +59,24 @@ router.get('/properties', checkPermissions('filamentSku', 'list'), isAuthenticat
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getFilamentSkuPropertyValuesRouteHandler(req, res, property); checkPermissions('filamentSku', '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
);
}
getFilamentSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchFilamentSkusRouteHandler(req, res, search); searchFilamentSkusRouteHandler(req, res, search);

View File

@ -52,10 +52,24 @@ router.get('/properties', checkPermissions('file', 'list'), isAuthenticated, asy
listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('file', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getFilePropertyValuesRouteHandler(req, res, property); checkPermissions('file', '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
);
}
getFilePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('file', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('file', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -48,10 +48,24 @@ router.get('/properties', checkPermissions('host', 'list'), isAuthenticated, asy
listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('host', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getHostPropertyValuesRouteHandler(req, res, property); checkPermissions('host', '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
);
}
getHostPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('host', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('host', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -48,10 +48,24 @@ router.get('/properties', checkPermissions('material', 'list'), isAuthenticated,
listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('material', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getMaterialPropertyValuesRouteHandler(req, res, property); checkPermissions('material', '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
);
}
getMaterialPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('material', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('material', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -48,10 +48,24 @@ router.get('/properties', checkPermissions('noteType', 'list'), isAuthenticated,
listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('noteType', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getNoteTypePropertyValuesRouteHandler(req, res, property); checkPermissions('noteType', '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
);
}
getNoteTypePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('noteType', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('noteType', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchNoteTypesRouteHandler(req, res, search); searchNoteTypesRouteHandler(req, res, search);

View File

@ -59,10 +59,24 @@ router.get('/properties', checkPermissions('part', 'list'), isAuthenticated, asy
listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('part', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPartPropertyValuesRouteHandler(req, res, property); checkPermissions('part', '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
);
}
getPartPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('part', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('part', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -60,10 +60,24 @@ router.get('/properties', checkPermissions('partSku', 'list'), isAuthenticated,
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPartSkuPropertyValuesRouteHandler(req, res, property); checkPermissions('partSku', '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
);
}
getPartSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPartSkusRouteHandler(req, res, search); searchPartSkusRouteHandler(req, res, search);

View File

@ -48,10 +48,24 @@ router.get('/properties', checkPermissions('permissionSetting', 'list'), isAuthe
listPermissionSettingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPermissionSettingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('permissionSetting', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPermissionSettingsPropertyValuesRouteHandler(req, res, property); checkPermissions('permissionSetting', '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
);
}
getPermissionSettingsPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('permissionSetting', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('permissionSetting', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -46,10 +46,24 @@ router.get('/properties', checkPermissions('productCategory', 'list'), isAuthent
listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('productCategory', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getProductCategoryPropertyValuesRouteHandler(req, res, property); checkPermissions('productCategory', '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
);
}
getProductCategoryPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('productCategory', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('productCategory', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -60,10 +60,24 @@ router.get('/properties', checkPermissions('product', 'list'), isAuthenticated,
listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('product', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getProductPropertyValuesRouteHandler(req, res, property); checkPermissions('product', '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
);
}
getProductPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('product', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('product', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -60,10 +60,24 @@ router.get('/properties', checkPermissions('productSku', 'list'), isAuthenticate
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getProductSkuPropertyValuesRouteHandler(req, res, property); checkPermissions('productSku', '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
);
}
getProductSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchProductSkusRouteHandler(req, res, search); searchProductSkusRouteHandler(req, res, search);

View File

@ -61,10 +61,24 @@ router.get('/properties', checkPermissions('taxRate', 'list'), isAuthenticated,
listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('taxRate', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getTaxRatePropertyValuesRouteHandler(req, res, property); checkPermissions('taxRate', '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
);
}
getTaxRatePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('taxRate', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('taxRate', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -48,10 +48,24 @@ router.get('/properties', checkPermissions('userGroup', 'list'), isAuthenticated
listUserGroupsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listUserGroupsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('userGroup', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getUserGroupPropertyValuesRouteHandler(req, res, property); checkPermissions('userGroup', '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
);
}
getUserGroupPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('userGroup', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('userGroup', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -50,10 +50,24 @@ router.get('/properties', checkPermissions('user', 'list'), isAuthenticated, asy
listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('user', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getUserPropertyValuesRouteHandler(req, res, property); checkPermissions('user', '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
);
}
getUserPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('user', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('user', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchUsersRouteHandler(req, res, search); searchUsersRouteHandler(req, res, search);

View File

@ -48,10 +48,24 @@ router.get('/properties', checkPermissions('vendor', 'list'), isAuthenticated, a
listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('vendor', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getVendorPropertyValuesRouteHandler(req, res, property); checkPermissions('vendor', '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
);
}
getVendorPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('vendor', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('vendor', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;

View File

@ -46,10 +46,24 @@ router.get('/properties', checkPermissions('filamentProfile', 'list'), isAuthent
listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('filamentProfile', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getFilamentProfilePropertyValuesRouteHandler(req, res, property); checkPermissions('filamentProfile', '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
);
}
getFilamentProfilePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('filamentProfile', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('filamentProfile', 'list'), isAuthenticated, async (req, res) => {
searchFilamentProfilesRouteHandler(req, res, req.query.search); searchFilamentProfilesRouteHandler(req, res, req.query.search);

View File

@ -49,10 +49,24 @@ router.get('/properties', checkPermissions('gcodeFile', 'list'), isAuthenticated
listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('gcodeFile', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getGCodeFilePropertyValuesRouteHandler(req, res, property); checkPermissions('gcodeFile', '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
);
}
getGCodeFilePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('gcodeFile', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('gcodeFile', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchGCodeFilesRouteHandler(req, res, search); searchGCodeFilesRouteHandler(req, res, search);

View File

@ -45,7 +45,17 @@ import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
router.get('/', isAuthenticated, checkPermissions('job', 'list'), async (req, res) => { router.get('/', isAuthenticated, checkPermissions('job', 'list'), async (req, res) => {
const { page, limit, property, search, sortProperty, sortOrder } = req.query; const { page, limit, property, search, sortProperty, sortOrder } = req.query;
const filter = await getFilter(req.query, listAllowedFilters); const filter = await getFilter(req.query, listAllowedFilters);
listJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder); listJobsRouteHandler(
req,
res,
page,
limit,
property,
filter,
search,
getSort(sortProperty, listAllowedSorters),
sortOrder
);
}); });
router.get('/properties', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => { router.get('/properties', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => {
@ -60,7 +70,12 @@ router.get('/properties', checkPermissions('job', 'list'), isAuthenticated, asyn
router.get('/values', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => { router.get('/values', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => {
const { property } = req.query; const { property } = req.query;
getJobPropertyValuesRouteHandler(req, res, property); const filter = await getFilter(req.query, listAllowedFilters, true);
var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = await getFilter(JSON.parse(req.query.masterFilter), listAllowedFilters, true);
}
getJobPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}); });
router.get('/search', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
@ -84,7 +99,16 @@ router.get('/history', isAuthenticated, async (req, res) => {
router.get('/neighbors', isAuthenticated, async (req, res) => { router.get('/neighbors', isAuthenticated, async (req, res) => {
const { property, search, sortProperty, sortOrder, id } = req.query; const { property, search, sortProperty, sortOrder, id } = req.query;
const filter = await getFilter(req.query, listAllowedFilters); const filter = await getFilter(req.query, listAllowedFilters);
getJobNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id); getJobNeighborsRouteHandler(
req,
res,
property,
filter,
search,
getSort(sortProperty, listAllowedSorters),
sortOrder,
id
);
}); });
router.get('/:id', isAuthenticated, checkPermissions('job', 'info'), async (req, res) => { router.get('/:id', isAuthenticated, checkPermissions('job', 'info'), async (req, res) => {

View File

@ -45,10 +45,24 @@ router.get('/properties', checkPermissions('printerProfile', 'list'), isAuthenti
listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('printerProfile', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPrinterProfilePropertyValuesRouteHandler(req, res, property); checkPermissions('printerProfile', '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
);
}
getPrinterProfilePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('printerProfile', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('printerProfile', 'list'), isAuthenticated, async (req, res) => {
searchPrinterProfilesRouteHandler(req, res, req.query.search); searchPrinterProfilesRouteHandler(req, res, req.query.search);

View File

@ -49,10 +49,24 @@ router.get('/properties', checkPermissions('printer', 'list'), isAuthenticated,
listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('printer', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getPrinterPropertyValuesRouteHandler(req, res, property); checkPermissions('printer', '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
);
}
getPrinterPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('printer', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('printer', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPrintersRouteHandler(req, res, search); searchPrintersRouteHandler(req, res, search);

View File

@ -56,10 +56,24 @@ router.get('/properties', checkPermissions('subJob', 'list'), isAuthenticated, a
listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('subJob', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getSubJobPropertyValuesRouteHandler(req, res, property); checkPermissions('subJob', '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
);
}
getSubJobPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('subJob', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('subJob', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchSubJobsRouteHandler(req, res, search); searchSubJobsRouteHandler(req, res, search);

View File

@ -49,10 +49,24 @@ router.get('/properties', checkPermissions('client', 'list'), isAuthenticated, a
listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('client', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getClientPropertyValuesRouteHandler(req, res, property); checkPermissions('client', '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
);
}
getClientPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('client', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('client', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchClientsRouteHandler(req, res, search); searchClientsRouteHandler(req, res, search);

View File

@ -76,7 +76,17 @@ router.get(
checkPermissions('fulfillmentPolicy', 'list'), checkPermissions('fulfillmentPolicy', 'list'),
isAuthenticated, isAuthenticated,
async (req, res) => { async (req, res) => {
getFulfillmentPolicyPropertyValuesRouteHandler(req, res, req.query.property); 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
);
}
getFulfillmentPolicyPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
} }
); );

View File

@ -84,10 +84,24 @@ router.get('/properties', checkPermissions('listing', 'list'), isAuthenticated,
listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('listing', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getListingPropertyValuesRouteHandler(req, res, property); checkPermissions('listing', '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
);
}
getListingPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('listing', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('listing', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchListingsRouteHandler(req, res, search); searchListingsRouteHandler(req, res, search);

View File

@ -2,6 +2,7 @@ import express from 'express';
import { isAuthenticated } from '../../keycloak.js'; import { isAuthenticated } from '../../keycloak.js';
import { checkPermissions } from '../../database/permissions.js'; import { checkPermissions } from '../../database/permissions.js';
import { getFilter, convertPropertiesString, getSort } from '../../utils.js'; import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
import { listingVarientModel } from '../../database/schemas/sales/listingvarient.schema.js';
const router = express.Router(); const router = express.Router();
@ -19,18 +20,26 @@ const listAllowedFilters = [
'updatedAt', 'updatedAt',
'_reference', '_reference',
]; ];
const listAllowedSorters = ['state', 'stockQuantity', 'price', 'lastSyncedAt', 'createdAt', 'updatedAt', '_id']; const listAllowedSorters = [
'state',
'stockQuantity',
'price',
'lastSyncedAt',
'createdAt',
'updatedAt',
'_id',
];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'listing', 'listing',
'listing._id', 'listing._id',
'product', 'product',
'productSku', 'productSku',
'stockQuantity', 'stockQuantity',
'state', 'state',
'state.type', 'state.type',
'createdAt', 'createdAt',
'updatedAt', 'updatedAt',
]; ];
import { import {
listListingVarientsRouteHandler, listListingVarientsRouteHandler,
getListingVarientRouteHandler, getListingVarientRouteHandler,
@ -44,39 +53,77 @@ import {
unpublishListingVarientRouteHandler, unpublishListingVarientRouteHandler,
searchListingVarientsRouteHandler, searchListingVarientsRouteHandler,
getListingVarientPropertyValuesRouteHandler, getListingVarientPropertyValuesRouteHandler,
getListingVarientNeighborsRouteHandler,
getListingVarientNeighborsRouteHandler
} from '../../services/sales/listingvarients.js'; } from '../../services/sales/listingvarients.js';
router.get('/', isAuthenticated, checkPermissions('listingVarient', 'list'), async (req, res) => { router.get('/', isAuthenticated, checkPermissions('listingVarient', 'list'), async (req, res) => {
const { page, limit, property, search, sortProperty, sortOrder } = req.query; const { page, limit, property, search, sortProperty, sortOrder } = req.query;
const filter = await getFilter(req.query, listAllowedFilters); const filter = await getFilter(req.query, listAllowedFilters);
listListingVarientsRouteHandler(req, res, page, limit, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder); listListingVarientsRouteHandler(
req,
res,
page,
limit,
property,
filter,
search,
getSort(sortProperty, listAllowedSorters),
sortOrder
);
}); });
router.get('/properties', checkPermissions('listingVarient', 'list'), isAuthenticated, async (req, res) => { router.get(
let properties = convertPropertiesString(req.query.properties); '/properties',
const filter = await getFilter(req.query, propertiesAllowedFilters, false); checkPermissions('listingVarient', 'list'),
var masterFilter = {}; isAuthenticated,
if (req.query.masterFilter) { async (req, res) => {
masterFilter = JSON.parse(req.query.masterFilter); 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);
}
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
} }
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); );
});
router.get('/values', checkPermissions('listingVarient', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getListingVarientPropertyValuesRouteHandler(req, res, property); checkPermissions('listingVarient', 'list'),
}); isAuthenticated,
router.get('/search', checkPermissions('listingVarient', 'list'), isAuthenticated, async (req, res) => { async (req, res) => {
const { search } = req.query; const { property } = req.query;
searchListingVarientsRouteHandler(req, res, search); const filter = await getFilter(req.query, listAllowedFilters, true, listingVarientModel);
}); var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = await getFilter(
JSON.parse(req.query.masterFilter),
listAllowedFilters,
true,
listingVarientModel
);
}
getListingVarientPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get(
'/search',
checkPermissions('listingVarient', 'list'),
isAuthenticated,
async (req, res) => {
const { search } = req.query;
searchListingVarientsRouteHandler(req, res, search);
}
);
router.post(
router.post('/', isAuthenticated, checkPermissions('listing', 'newListingVarient'), async (req, res) => { '/',
newListingVarientRouteHandler(req, res); isAuthenticated,
}); checkPermissions('listing', 'newListingVarient'),
async (req, res) => {
newListingVarientRouteHandler(req, res);
}
);
router.get('/stats', isAuthenticated, async (req, res) => { router.get('/stats', isAuthenticated, async (req, res) => {
getListingVarientStatsRouteHandler(req, res); getListingVarientStatsRouteHandler(req, res);
@ -86,27 +133,56 @@ router.get('/history', isAuthenticated, async (req, res) => {
getListingVarientHistoryRouteHandler(req, res); getListingVarientHistoryRouteHandler(req, res);
}); });
router.post('/:id/publish', isAuthenticated, checkPermissions('listingVarient', 'publish'), async (req, res) => { router.post(
publishListingVarientRouteHandler(req, res); '/:id/publish',
}); isAuthenticated,
checkPermissions('listingVarient', 'publish'),
async (req, res) => {
publishListingVarientRouteHandler(req, res);
}
);
router.post('/:id/unpublish', isAuthenticated, checkPermissions('listingVarient', 'unpublish'), async (req, res) => { router.post(
unpublishListingVarientRouteHandler(req, res); '/:id/unpublish',
}); isAuthenticated,
checkPermissions('listingVarient', 'unpublish'),
async (req, res) => {
unpublishListingVarientRouteHandler(req, res);
}
);
router.get('/neighbors', isAuthenticated, async (req, res) => { router.get('/neighbors', isAuthenticated, async (req, res) => {
const { property, search, sortProperty, sortOrder, id } = req.query; const { property, search, sortProperty, sortOrder, id } = req.query;
const filter = await getFilter(req.query, listAllowedFilters); const filter = await getFilter(req.query, listAllowedFilters);
getListingVarientNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id); getListingVarientNeighborsRouteHandler(
req,
res,
property,
filter,
search,
getSort(sortProperty, listAllowedSorters),
sortOrder,
id
);
}); });
router.get('/:id', isAuthenticated, checkPermissions('listingVarient', 'info'), async (req, res) => { router.get(
getListingVarientRouteHandler(req, res); '/:id',
}); isAuthenticated,
checkPermissions('listingVarient', 'info'),
async (req, res) => {
getListingVarientRouteHandler(req, res);
}
);
router.put('/:id', isAuthenticated, checkPermissions('listingVarient', 'edit'), async (req, res) => { router.put(
editListingVarientRouteHandler(req, res); '/:id',
}); isAuthenticated,
checkPermissions('listingVarient', 'edit'),
async (req, res) => {
editListingVarientRouteHandler(req, res);
}
);
router.delete('/:id', isAuthenticated, async (req, res) => { router.delete('/:id', isAuthenticated, async (req, res) => {
deleteListingVarientRouteHandler(req, res); deleteListingVarientRouteHandler(req, res);

View File

@ -101,7 +101,16 @@ router.get(
isAuthenticated, isAuthenticated,
async (req, res) => { async (req, res) => {
const { property } = req.query; const { property } = req.query;
getMarketplacePropertyValuesRouteHandler(req, res, property); const filter = await getFilter(req.query, listAllowedFilters, true);
var masterFilter = {};
if (req.query.masterFilter) {
masterFilter = await getFilter(
JSON.parse(req.query.masterFilter),
listAllowedFilters,
true
);
}
getMarketplacePropertyValuesRouteHandler(req, res, property, filter, masterFilter);
} }
); );
router.get( router.get(

View File

@ -81,7 +81,17 @@ router.get(
checkPermissions('returnPolicy', 'list'), checkPermissions('returnPolicy', 'list'),
isAuthenticated, isAuthenticated,
async (req, res) => { async (req, res) => {
getReturnPolicyPropertyValuesRouteHandler(req, res, req.query.property); 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
);
}
getReturnPolicyPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
} }
); );

View File

@ -51,10 +51,24 @@ router.get('/properties', checkPermissions('salesOrder', 'list'), isAuthenticate
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', checkPermissions('salesOrder', 'list'), isAuthenticated, async (req, res) => { router.get(
const { property } = req.query; '/values',
getSalesOrderPropertyValuesRouteHandler(req, res, property); checkPermissions('salesOrder', '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
);
}
getSalesOrderPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
}
);
router.get('/search', checkPermissions('salesOrder', 'list'), isAuthenticated, async (req, res) => { router.get('/search', checkPermissions('salesOrder', 'list'), isAuthenticated, async (req, res) => {
const { search } = req.query; const { search } = req.query;
searchSalesOrdersRouteHandler(req, res, search); searchSalesOrdersRouteHandler(req, res, search);

View File

@ -95,10 +95,17 @@ export const listInvoicesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getInvoicePropertyValuesRouteHandler = async (req, res, property) => { export const getInvoicePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: invoiceModel, model: invoiceModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -89,10 +89,17 @@ export const listPaymentPoliciesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPaymentPolicyPropertyValuesRouteHandler = async (req, res, property) => { export const getPaymentPolicyPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: paymentPolicyModel, model: paymentPolicyModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -84,10 +84,17 @@ export const listPaymentsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPaymentPropertyValuesRouteHandler = async (req, res, property) => { export const getPaymentPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: paymentModel, model: paymentModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listTaxRecordsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getTaxRecordPropertyValuesRouteHandler = async (req, res, property) => { export const getTaxRecordPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: taxRecordModel, model: taxRecordModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -82,10 +82,17 @@ export const listFilamentStocksByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getFilamentStockPropertyValuesRouteHandler = async (req, res, property) => { export const getFilamentStockPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: filamentStockModel, model: filamentStockModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -173,10 +173,17 @@ export const listOrderItemsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getOrderItemPropertyValuesRouteHandler = async (req, res, property) => { export const getOrderItemPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: orderItemModel, model: orderItemModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -85,10 +85,17 @@ export const listPartStocksByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPartStockPropertyValuesRouteHandler = async (req, res, property) => { export const getPartStockPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: partStockModel, model: partStockModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -144,10 +144,17 @@ export const listProductStocksByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getProductStockPropertyValuesRouteHandler = async (req, res, property) => { export const getProductStockPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: productStockModel, model: productStockModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -81,10 +81,17 @@ export const listPurchaseOrdersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPurchaseOrderPropertyValuesRouteHandler = async (req, res, property) => { export const getPurchaseOrderPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: purchaseOrderModel, model: purchaseOrderModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -82,10 +82,17 @@ export const listShipmentsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getShipmentPropertyValuesRouteHandler = async (req, res, property) => { export const getShipmentPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: shipmentModel, model: shipmentModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -79,10 +79,17 @@ export const listStockEventsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getStockEventPropertyValuesRouteHandler = async (req, res, property) => { export const getStockEventPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: stockEventModel, model: stockEventModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,10 +76,17 @@ export const listStockLocationsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getStockLocationPropertyValuesRouteHandler = async (req, res, property) => { export const getStockLocationPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: stockLocationModel, model: stockLocationModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -281,10 +281,17 @@ export const listStockTransfersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getStockTransferPropertyValuesRouteHandler = async (req, res, property) => { export const getStockTransferPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: stockTransferModel, model: stockTransferModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -82,10 +82,17 @@ export const listAppPasswordsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getAppPasswordPropertyValuesRouteHandler = async (req, res, property) => { export const getAppPasswordPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: appPasswordModel, model: appPasswordModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listCouriersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getCourierPropertyValuesRouteHandler = async (req, res, property) => { export const getCourierPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: courierModel, model: courierModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -78,10 +78,17 @@ export const listCourierServicesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getCourierServicePropertyValuesRouteHandler = async (req, res, property) => { export const getCourierServicePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: courierServiceModel, model: courierServiceModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -75,10 +75,17 @@ export const listDocumentJobsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getDocumentJobPropertyValuesRouteHandler = async (req, res, property) => { export const getDocumentJobPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: documentJobModel, model: documentJobModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -78,10 +78,17 @@ export const listDocumentPrintersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getDocumentPrinterPropertyValuesRouteHandler = async (req, res, property) => { export const getDocumentPrinterPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: documentPrinterModel, model: documentPrinterModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listDocumentSizesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getDocumentSizePropertyValuesRouteHandler = async (req, res, property) => { export const getDocumentSizePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: documentSizeModel, model: documentSizeModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -112,10 +112,17 @@ export const listDocumentTemplatesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getDocumentTemplatePropertyValuesRouteHandler = async (req, res, property) => { export const getDocumentTemplatePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: documentTemplateModel, model: documentTemplateModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -78,10 +78,17 @@ export const listFilamentsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getFilamentPropertyValuesRouteHandler = async (req, res, property) => { export const getFilamentPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: filamentModel, model: filamentModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,10 +76,17 @@ export const listFilamentSkusByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getFilamentSkuPropertyValuesRouteHandler = async (req, res, property) => { export const getFilamentSkuPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: filamentSkuModel, model: filamentSkuModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -111,10 +111,17 @@ export const listFilesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getFilePropertyValuesRouteHandler = async (req, res, property) => { export const getFilePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: fileModel, model: fileModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listHostsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getHostPropertyValuesRouteHandler = async (req, res, property) => { export const getHostPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: hostModel, model: hostModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,10 +76,17 @@ export const listMaterialsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getMaterialPropertyValuesRouteHandler = async (req, res, property) => { export const getMaterialPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: materialModel, model: materialModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listNoteTypesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getNoteTypePropertyValuesRouteHandler = async (req, res, property) => { export const getNoteTypePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: noteTypeModel, model: noteTypeModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,10 +76,17 @@ export const listPartsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPartPropertyValuesRouteHandler = async (req, res, property) => { export const getPartPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: partModel, model: partModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -82,10 +82,17 @@ export const listPartSkusByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPartSkuPropertyValuesRouteHandler = async (req, res, property) => { export const getPartSkuPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: partSkuModel, model: partSkuModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -77,10 +77,17 @@ export const listPermissionSettingsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPermissionSettingsPropertyValuesRouteHandler = async (req, res, property) => { export const getPermissionSettingsPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: permissionSettingModel, model: permissionSettingModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -79,10 +79,17 @@ export const listProductCategoriesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getProductCategoryPropertyValuesRouteHandler = async (req, res, property) => { export const getProductCategoryPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: productCategoryModel, model: productCategoryModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,10 +76,17 @@ export const listProductsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getProductPropertyValuesRouteHandler = async (req, res, property) => { export const getProductPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: productModel, model: productModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -85,10 +85,17 @@ export const listProductSkusByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getProductSkuPropertyValuesRouteHandler = async (req, res, property) => { export const getProductSkuPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: productSkuModel, model: productSkuModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -80,10 +80,17 @@ export const listTaxRatesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getTaxRatePropertyValuesRouteHandler = async (req, res, property) => { export const getTaxRatePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: taxRateModel, model: taxRateModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -83,10 +83,17 @@ export const listUserGroupsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getUserGroupPropertyValuesRouteHandler = async (req, res, property) => { export const getUserGroupPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: userGroupModel, model: userGroupModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -78,10 +78,17 @@ export const listUsersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getUserPropertyValuesRouteHandler = async (req, res, property) => { export const getUserPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: userModel, model: userModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listVendorsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getVendorPropertyValuesRouteHandler = async (req, res, property) => { export const getVendorPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: vendorModel, model: vendorModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -225,10 +225,17 @@ export const listFilamentProfilesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getFilamentProfilePropertyValuesRouteHandler = async (req, res, property) => { export const getFilamentProfilePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: filamentProfileModel, model: filamentProfileModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,10 +76,17 @@ export const listGCodeFilesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getGCodeFilePropertyValuesRouteHandler = async (req, res, property) => { export const getGCodeFilePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: gcodeFileModel, model: gcodeFileModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -76,11 +76,17 @@ export const listJobsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getJobPropertyValuesRouteHandler = async (req, res, property, filter = {}) => { export const getJobPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: jobModel, model: jobModel,
property, property,
filter, filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -113,10 +113,17 @@ export const listPrinterProfilesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPrinterProfilePropertyValuesRouteHandler = async (req, res, property) => { export const getPrinterProfilePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: printerProfileModel, model: printerProfileModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -77,10 +77,17 @@ export const listPrintersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getPrinterPropertyValuesRouteHandler = async (req, res, property) => { export const getPrinterPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: printerModel, model: printerModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -71,10 +71,17 @@ export const listSubJobsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getSubJobPropertyValuesRouteHandler = async (req, res, property) => { export const getSubJobPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: subJobModel, model: subJobModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -74,10 +74,17 @@ export const listClientsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getClientPropertyValuesRouteHandler = async (req, res, property) => { export const getClientPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: clientModel, model: clientModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -95,10 +95,17 @@ export const listFulfillmentPoliciesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getFulfillmentPolicyPropertyValuesRouteHandler = async (req, res, property) => { export const getFulfillmentPolicyPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: fulfillmentPolicyModel, model: fulfillmentPolicyModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -144,10 +144,17 @@ export const listListingsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getListingPropertyValuesRouteHandler = async (req, res, property) => { export const getListingPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: listingModel, model: listingModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -45,13 +45,7 @@ function pushListingToMarketplace(listingId, marketplaceId, user) {
run(); run();
} }
const POPULATE_FIELDS = [ const POPULATE_FIELDS = ['listing', 'product', 'productSku', 'priceTaxRate', 'listingImages'];
'listing',
'product',
'productSku',
'priceTaxRate',
'listingImages',
];
export const listListingVarientsRouteHandler = async ( export const listListingVarientsRouteHandler = async (
req, req,
@ -111,10 +105,17 @@ export const listListingVarientsByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getListingVarientPropertyValuesRouteHandler = async (req, res, property) => { export const getListingVarientPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: listingVarientModel, model: listingVarientModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -84,10 +84,17 @@ export const listMarketplacesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getMarketplacePropertyValuesRouteHandler = async (req, res, property) => { export const getMarketplacePropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: marketplaceModel, model: marketplaceModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -96,10 +96,17 @@ export const listReturnPoliciesByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getReturnPolicyPropertyValuesRouteHandler = async (req, res, property) => { export const getReturnPolicyPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: returnPolicyModel, model: returnPolicyModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -81,10 +81,17 @@ export const listSalesOrdersByPropertiesRouteHandler = async (
res.send(result); res.send(result);
}; };
export const getSalesOrderPropertyValuesRouteHandler = async (req, res, property) => { export const getSalesOrderPropertyValuesRouteHandler = async (
req,
res,
property,
filter,
masterFilter
) => {
const result = await getPropertyValues({ const result = await getPropertyValues({
model: salesOrderModel, model: salesOrderModel,
property, property,
filter: { ...filter, ...masterFilter },
}); });
res.send(result); res.send(result);
}; };

View File

@ -708,7 +708,6 @@ async function resolveRefLeaf(rawToken, fallbackRefName) {
return resolveRefOperand(lookupToken.slice(symbol.length), refModelEntry, name); return resolveRefOperand(lookupToken.slice(symbol.length), refModelEntry, name);
} }
} }
const objectId = extractObjectIdFromOperand(lookupToken); const objectId = extractObjectIdFromOperand(lookupToken);
if (objectId) return { value: objectId }; if (objectId) return { value: objectId };
@ -740,6 +739,10 @@ async function parseFilter(property, value, model = null) {
property = 'state.type'; property = 'state.type';
} }
console.log('property', property);
console.log('value', value);
console.log('model', model);
const fieldKind = getFilterFieldKind(property, model); const fieldKind = getFilterFieldKind(property, model);
const filterProperty = fieldKind.property; const filterProperty = fieldKind.property;
const isBoolField = isBooleanField(property, model); const isBoolField = isBooleanField(property, model);
@ -1673,6 +1676,10 @@ function normalizeFilterQuery(query = {}) {
// Returns a filter object based on allowed filters and req.query // Returns a filter object based on allowed filters and req.query
async function getFilter(query, allowedFilters, parse = true, model = null) { async function getFilter(query, allowedFilters, parse = true, model = null) {
const clauses = []; const clauses = [];
console.log('query', query);
console.log('allowedFilters', allowedFilters);
console.log('parse', parse);
console.log('model', model);
const queryClean = normalizeFilterQuery(query); const queryClean = normalizeFilterQuery(query);
for (const key of ['sortProperty', 'sortOrder', 'page', 'limit']) { for (const key of ['sortProperty', 'sortOrder', 'page', 'limit']) {
if (key in queryClean) delete queryClean[key]; if (key in queryClean) delete queryClean[key];