diff --git a/src/routes/finance/taxrecords.js b/src/routes/finance/taxrecords.js index b90baf7..78bdaff 100644 --- a/src/routes/finance/taxrecords.js +++ b/src/routes/finance/taxrecords.js @@ -27,7 +27,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['taxRate', 'transactionType', 'transaction']; const filter = getFilter(req.query, allowedFilters, false); - listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/management/courier.js b/src/routes/management/courier.js index 30ae45a..711fac0 100644 --- a/src/routes/management/courier.js +++ b/src/routes/management/courier.js @@ -12,7 +12,7 @@ import { listCouriersByPropertiesRouteHandler, getCourierStatsRouteHandler, getCourierHistoryRouteHandler, - searchCouriersRouteHandler + searchCouriersRouteHandler, } from '../../services/management/courier.js'; // list of couriers @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['name', 'website', 'email', 'phone', 'contact', 'country']; const filter = getFilter(req.query, allowedFilters, false); - listCouriersByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchCouriersRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newCourierRouteHandler(req, res); }); diff --git a/src/routes/management/courierservice.js b/src/routes/management/courierservice.js index cc6790b..8c72b1f 100644 --- a/src/routes/management/courierservice.js +++ b/src/routes/management/courierservice.js @@ -47,8 +47,13 @@ router.get('/properties', isAuthenticated, (req, res) => { 'costWithTax', ]; const filter = getFilter(req.query, allowedFilters, false); - listCourierServicesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchCourierServicesRouteHandler(req, res, search); diff --git a/src/routes/management/documentjobs.js b/src/routes/management/documentjobs.js index 5d3d6cd..0a75a23 100644 --- a/src/routes/management/documentjobs.js +++ b/src/routes/management/documentjobs.js @@ -12,7 +12,7 @@ import { listDocumentJobsByPropertiesRouteHandler, getDocumentJobStatsRouteHandler, getDocumentJobHistoryRouteHandler, - searchDocumentJobsRouteHandler + searchDocumentJobsRouteHandler, } from '../../services/management/documentjobs.js'; // list of document jobs @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = []; const filter = getFilter(req.query, allowedFilters, false); - listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentJobsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newDocumentJobRouteHandler(req, res); }); diff --git a/src/routes/management/documentprinters.js b/src/routes/management/documentprinters.js index 482cedd..196c12d 100644 --- a/src/routes/management/documentprinters.js +++ b/src/routes/management/documentprinters.js @@ -12,7 +12,7 @@ import { listDocumentPrintersByPropertiesRouteHandler, getDocumentPrinterStatsRouteHandler, getDocumentPrinterHistoryRouteHandler, - searchDocumentPrintersRouteHandler + searchDocumentPrintersRouteHandler, } from '../../services/management/documentprinters.js'; // list of document printers @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['tags']; const filter = getFilter(req.query, allowedFilters, false); - listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentPrintersRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newDocumentPrinterRouteHandler(req, res); }); diff --git a/src/routes/management/documentsizes.js b/src/routes/management/documentsizes.js index ec3856b..11428c6 100644 --- a/src/routes/management/documentsizes.js +++ b/src/routes/management/documentsizes.js @@ -12,7 +12,7 @@ import { listDocumentSizesByPropertiesRouteHandler, getDocumentSizeStatsRouteHandler, getDocumentSizeHistoryRouteHandler, - searchDocumentSizesRouteHandler + searchDocumentSizesRouteHandler, } from '../../services/management/documentsizes.js'; // list of document sizes @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = []; const filter = getFilter(req.query, allowedFilters, false); - listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentSizesRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newDocumentSizeRouteHandler(req, res); }); diff --git a/src/routes/management/filaments.js b/src/routes/management/filaments.js index 9a917d9..3c10e1d 100644 --- a/src/routes/management/filaments.js +++ b/src/routes/management/filaments.js @@ -13,21 +13,14 @@ import { deleteFilamentRouteHandler, getFilamentStatsRouteHandler, getFilamentHistoryRouteHandler, - searchFilamentsRouteHandler + searchFilamentsRouteHandler, } from '../../services/management/filaments.js'; // list of filaments router.get('/', isAuthenticated, (req, res) => { const { page, limit, property, search, sort, order } = req.query; - const allowedFilters = [ - '_id', - 'material', - 'material._id', - 'diameter', - 'name', - 'cost', - ]; + const allowedFilters = ['_id', 'material', 'material._id', 'diameter', 'name', 'cost']; var filter = {}; @@ -46,14 +39,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['diameter', 'material']; const filter = getFilter(req.query, allowedFilters, false); - listFilamentsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchFilamentsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newFilamentRouteHandler(req, res); }); diff --git a/src/routes/management/files.js b/src/routes/management/files.js index bb379e4..259235a 100644 --- a/src/routes/management/files.js +++ b/src/routes/management/files.js @@ -14,29 +14,33 @@ import { listFilesByPropertiesRouteHandler, getFileStatsRouteHandler, getFileHistoryRouteHandler, - searchFilesRouteHandler + searchFilesRouteHandler, } from '../../services/management/files.js'; // list of files router.get('/', isAuthenticated, (req, res) => { const { page, limit, property, search, sort, order } = req.query; - const allowedFilters = ['_id', 'name', 'type', 'size']; + const allowedFilters = ['_id', 'name', 'type', 'size', 'extension']; const filter = getFilter(req.query, allowedFilters); listFilesRouteHandler(req, res, page, limit, property, filter, search, sort, order); }); router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); - const allowedFilters = ['type']; + const allowedFilters = ['type', 'extension']; const filter = getFilter(req.query, allowedFilters, false); - listFilesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchFilesRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newFileRouteHandler(req, res); }); diff --git a/src/routes/management/hosts.js b/src/routes/management/hosts.js index 2e8e5d9..b36f856 100644 --- a/src/routes/management/hosts.js +++ b/src/routes/management/hosts.js @@ -12,7 +12,7 @@ import { listHostsByPropertiesRouteHandler, getHostStatsRouteHandler, getHostHistoryRouteHandler, - searchHostsRouteHandler + searchHostsRouteHandler, } from '../../services/management/hosts.js'; // list of hosts @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['tags']; const filter = getFilter(req.query, allowedFilters, false); - listHostsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchHostsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newHostRouteHandler(req, res); }); diff --git a/src/routes/management/materials.js b/src/routes/management/materials.js index 82d769e..d066c01 100644 --- a/src/routes/management/materials.js +++ b/src/routes/management/materials.js @@ -35,7 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['name', 'tags']; const filter = getFilter(req.query, allowedFilters, false); - listMaterialsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { diff --git a/src/routes/management/parts.js b/src/routes/management/parts.js index dfcb2d5..560b241 100644 --- a/src/routes/management/parts.js +++ b/src/routes/management/parts.js @@ -12,7 +12,7 @@ import { listPartsByPropertiesRouteHandler, getPartStatsRouteHandler, getPartHistoryRouteHandler, - searchPartsRouteHandler + searchPartsRouteHandler, } from '../../services/management/parts.js'; // list of parts @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['product._id']; const filter = getFilter(req.query, allowedFilters, false); - listPartsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPartsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newPartRouteHandler(req, res); }); diff --git a/src/routes/management/productcategories.js b/src/routes/management/productcategories.js index ad7f9ff..d50420d 100644 --- a/src/routes/management/productcategories.js +++ b/src/routes/management/productcategories.js @@ -10,7 +10,7 @@ import { listProductCategoriesByPropertiesRouteHandler, listProductCategoriesRouteHandler, newProductCategoryRouteHandler, - searchProductCategoriesRouteHandler + searchProductCategoriesRouteHandler, } from '../../services/management/productcategories.js'; const router = express.Router(); @@ -26,14 +26,18 @@ router.get('/properties', isAuthenticated, (req, res) => { const properties = convertPropertiesString(req.query.properties); const allowedFilters = ['name']; const filter = getFilter(req.query, allowedFilters, false); - listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchProductCategoriesRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newProductCategoryRouteHandler(req, res); }); diff --git a/src/routes/management/products.js b/src/routes/management/products.js index 2908d86..962f46c 100644 --- a/src/routes/management/products.js +++ b/src/routes/management/products.js @@ -12,7 +12,7 @@ import { listProductsByPropertiesRouteHandler, getProductStatsRouteHandler, getProductHistoryRouteHandler, - searchProductsRouteHandler + searchProductsRouteHandler, } from '../../services/management/products.js'; // list of products @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = []; const filter = getFilter(req.query, allowedFilters, false); - listProductsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchProductsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newProductRouteHandler(req, res); }); diff --git a/src/routes/management/taxrates.js b/src/routes/management/taxrates.js index 0bd98a2..dbc14e7 100644 --- a/src/routes/management/taxrates.js +++ b/src/routes/management/taxrates.js @@ -12,7 +12,7 @@ import { listTaxRatesByPropertiesRouteHandler, getTaxRateStatsRouteHandler, getTaxRateHistoryRouteHandler, - searchTaxRatesRouteHandler + searchTaxRatesRouteHandler, } from '../../services/management/taxrates.js'; // list of tax rates @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['rateType', 'country', 'active']; const filter = getFilter(req.query, allowedFilters, false); - listTaxRatesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchTaxRatesRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newTaxRateRouteHandler(req, res); }); diff --git a/src/routes/management/vendors.js b/src/routes/management/vendors.js index 6729d97..4b2169e 100644 --- a/src/routes/management/vendors.js +++ b/src/routes/management/vendors.js @@ -12,7 +12,7 @@ import { listVendorsByPropertiesRouteHandler, getVendorStatsRouteHandler, getVendorHistoryRouteHandler, - searchVendorsRouteHandler + searchVendorsRouteHandler, } from '../../services/management/vendors.js'; // list of vendors @@ -27,14 +27,18 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['country', 'active', 'createdAt', 'updatedAt']; const filter = getFilter(req.query, allowedFilters, false); - listVendorsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchVendorsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newVendorRouteHandler(req, res); }); diff --git a/src/routes/misc/notes.js b/src/routes/misc/notes.js index b34d900..0b6603c 100644 --- a/src/routes/misc/notes.js +++ b/src/routes/misc/notes.js @@ -26,7 +26,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['parent']; const filter = getFilter(req.query, allowedFilters, false); - listNotesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listNotesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); // create new note diff --git a/src/routes/production/filamentprofiles.js b/src/routes/production/filamentprofiles.js index d89113f..5e2c094 100644 --- a/src/routes/production/filamentprofiles.js +++ b/src/routes/production/filamentprofiles.js @@ -22,7 +22,11 @@ router.get('/', isAuthenticated, (req, res) => { router.get('/properties', isAuthenticated, (req, res) => { const properties = convertPropertiesString(req.query.properties); const filter = getFilter(req.query, ['name'], false); - listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { diff --git a/src/routes/production/gcodefiles.js b/src/routes/production/gcodefiles.js index a8142e9..36c32f6 100644 --- a/src/routes/production/gcodefiles.js +++ b/src/routes/production/gcodefiles.js @@ -26,7 +26,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['filament', 'filament._id', 'filamentSku', 'filamentSku._id']; const filter = getFilter(req.query, allowedFilters, false); - listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/production/jobs.js b/src/routes/production/jobs.js index 1f0d1a4..4253373 100644 --- a/src/routes/production/jobs.js +++ b/src/routes/production/jobs.js @@ -27,7 +27,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['state']; const filter = getFilter(req.query, allowedFilters, false); - listJobsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/production/printerprofiles.js b/src/routes/production/printerprofiles.js index a8536e0..5d2cc58 100644 --- a/src/routes/production/printerprofiles.js +++ b/src/routes/production/printerprofiles.js @@ -22,7 +22,11 @@ router.get('/', isAuthenticated, (req, res) => { router.get('/properties', isAuthenticated, (req, res) => { const properties = convertPropertiesString(req.query.properties); const filter = getFilter(req.query, ['name'], false); - listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { diff --git a/src/routes/production/printers.js b/src/routes/production/printers.js index bc25529..74e6fca 100644 --- a/src/routes/production/printers.js +++ b/src/routes/production/printers.js @@ -26,7 +26,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['tags']; const filter = getFilter(req.query, allowedFilters, false); - listPrintersByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/production/subjobs.js b/src/routes/production/subjobs.js index f9fafc3..d7c4fcc 100644 --- a/src/routes/production/subjobs.js +++ b/src/routes/production/subjobs.js @@ -24,7 +24,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['job']; const filter = getFilter(req.query, allowedFilters, false); - listSubJobsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/sales/clients.js b/src/routes/sales/clients.js index e2b269f..8b87690 100644 --- a/src/routes/sales/clients.js +++ b/src/routes/sales/clients.js @@ -27,7 +27,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['country', 'active', 'createdAt', 'updatedAt']; const filter = getFilter(req.query, allowedFilters, false); - listClientsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/sales/listings.js b/src/routes/sales/listings.js index 2c7a274..ef8f814 100644 --- a/src/routes/sales/listings.js +++ b/src/routes/sales/listings.js @@ -48,7 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => { 'updatedAt', ]; const filter = getFilter(req.query, allowedFilters, false); - listListingsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/sales/listingvarients.js b/src/routes/sales/listingvarients.js index 18618fa..b5916a2 100644 --- a/src/routes/sales/listingvarients.js +++ b/src/routes/sales/listingvarients.js @@ -46,7 +46,11 @@ router.get('/properties', isAuthenticated, (req, res) => { 'updatedAt', ]; const filter = getFilter(req.query, allowedFilters, false); - listListingVarientsByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/routes/sales/marketplaces.js b/src/routes/sales/marketplaces.js index 06e8212..23bc67a 100644 --- a/src/routes/sales/marketplaces.js +++ b/src/routes/sales/marketplaces.js @@ -32,7 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => { let properties = convertPropertiesString(req.query.properties); const allowedFilters = ['name', 'provider', 'active', 'connected', 'state.type', 'createdAt', 'updatedAt']; const filter = getFilter(req.query, allowedFilters, false); - listMarketplacesByPropertiesRouteHandler(req, res, properties, filter); + var masterFilter = {}; + if (req.query.masterFilter) { + masterFilter = JSON.parse(req.query.masterFilter); + } + listMarketplacesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; diff --git a/src/services/finance/taxrecords.js b/src/services/finance/taxrecords.js index 9b49620..894999f 100644 --- a/src/services/finance/taxrecords.js +++ b/src/services/finance/taxrecords.js @@ -52,12 +52,14 @@ export const listTaxRecordsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: taxRecordModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/management/courier.js b/src/services/management/courier.js index e9e516d..e34a6d2 100644 --- a/src/services/management/courier.js +++ b/src/services/management/courier.js @@ -52,12 +52,14 @@ export const listCouriersByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: courierModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/management/courierservice.js b/src/services/management/courierservice.js index 6d9890d..7285c8a 100644 --- a/src/services/management/courierservice.js +++ b/src/services/management/courierservice.js @@ -53,12 +53,14 @@ export const listCourierServicesByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: courierServiceModel, properties, filter, + masterFilter, populate: ['courier', 'costTaxRate'], }); diff --git a/src/services/management/documentjobs.js b/src/services/management/documentjobs.js index 701003c..418461e 100644 --- a/src/services/management/documentjobs.js +++ b/src/services/management/documentjobs.js @@ -52,12 +52,14 @@ export const listDocumentJobsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: documentJobModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/management/documentprinters.js b/src/services/management/documentprinters.js index c31042e..60515fe 100644 --- a/src/services/management/documentprinters.js +++ b/src/services/management/documentprinters.js @@ -55,12 +55,14 @@ export const listDocumentPrintersByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: documentPrinterModel, properties, filter, + masterFilter, populate: ['currentDocumentSize', 'host'], }); diff --git a/src/services/management/documentsizes.js b/src/services/management/documentsizes.js index 6c2cc26..992b5bb 100644 --- a/src/services/management/documentsizes.js +++ b/src/services/management/documentsizes.js @@ -52,12 +52,14 @@ export const listDocumentSizesByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: documentSizeModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/management/filaments.js b/src/services/management/filaments.js index ef89256..39b8027 100644 --- a/src/services/management/filaments.js +++ b/src/services/management/filaments.js @@ -55,12 +55,14 @@ export const listFilamentsByPropertiesRouteHandler = async ( req, res, properties = [], - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: filamentModel, properties, filter, + masterFilter, populate: [], }); diff --git a/src/services/management/materials.js b/src/services/management/materials.js index 33f13c3..56c6bb0 100644 --- a/src/services/management/materials.js +++ b/src/services/management/materials.js @@ -53,12 +53,14 @@ export const listMaterialsByPropertiesRouteHandler = async ( req, res, properties = [], - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: materialModel, properties, filter, + masterFilter, populate: [], }); diff --git a/src/services/management/parts.js b/src/services/management/parts.js index 362af6b..a241ca5 100644 --- a/src/services/management/parts.js +++ b/src/services/management/parts.js @@ -49,11 +49,18 @@ export const listPartsRouteHandler = async ( res.send(result); }; -export const listPartsByPropertiesRouteHandler = async (req, res, properties = '', filter = {}) => { +export const listPartsByPropertiesRouteHandler = async ( + req, + res, + properties = '', + filter = {}, + masterFilter = {} +) => { const result = await listObjectsByProperties({ model: partModel, properties, filter, + masterFilter, populate: [], }); diff --git a/src/services/management/productcategories.js b/src/services/management/productcategories.js index 66d0040..b080a89 100644 --- a/src/services/management/productcategories.js +++ b/src/services/management/productcategories.js @@ -54,12 +54,14 @@ export const listProductCategoriesByPropertiesRouteHandler = async ( req, res, properties = [], - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: productCategoryModel, properties, filter, + masterFilter, populate: [], }); diff --git a/src/services/management/products.js b/src/services/management/products.js index ba07d87..ab87887 100644 --- a/src/services/management/products.js +++ b/src/services/management/products.js @@ -53,12 +53,14 @@ export const listProductsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: productModel, properties, filter, + masterFilter, populate: ['productCategory', 'vendor'], }); diff --git a/src/services/management/taxrates.js b/src/services/management/taxrates.js index 98116ce..5c34eed 100644 --- a/src/services/management/taxrates.js +++ b/src/services/management/taxrates.js @@ -52,12 +52,14 @@ export const listTaxRatesByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: taxRateModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/management/vendors.js b/src/services/management/vendors.js index 37cd421..34acc27 100644 --- a/src/services/management/vendors.js +++ b/src/services/management/vendors.js @@ -52,12 +52,14 @@ export const listVendorsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: vendorModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/misc/notes.js b/src/services/misc/notes.js index b635825..67d5cf9 100644 --- a/src/services/misc/notes.js +++ b/src/services/misc/notes.js @@ -51,11 +51,18 @@ export const listNotesRouteHandler = async ( res.send(result); }; -export const listNotesByPropertiesRouteHandler = async (req, res, properties = '', filter = {}) => { +export const listNotesByPropertiesRouteHandler = async ( + req, + res, + properties = '', + filter = {}, + masterFilter = {} +) => { const result = await listObjectsByProperties({ model: noteModel, properties, filter, + masterFilter, populate: ['noteType', 'user'], }); diff --git a/src/services/production/filamentprofiles.js b/src/services/production/filamentprofiles.js index 83f321d..1f90b3a 100644 --- a/src/services/production/filamentprofiles.js +++ b/src/services/production/filamentprofiles.js @@ -203,12 +203,14 @@ export const listFilamentProfilesByPropertiesRouteHandler = async ( req, res, properties = [], - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: filamentProfileModel, properties, filter, + masterFilter, populate: FILAMENT_PROFILE_POPULATE, }); diff --git a/src/services/production/gcodefiles.js b/src/services/production/gcodefiles.js index 7702e78..88e4197 100644 --- a/src/services/production/gcodefiles.js +++ b/src/services/production/gcodefiles.js @@ -53,12 +53,14 @@ export const listGCodeFilesByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: gcodeFileModel, properties, filter, + masterFilter, populate: ['filament', 'filamentSku'], }); diff --git a/src/services/production/printerprofiles.js b/src/services/production/printerprofiles.js index ecb85f3..ee0c81f 100644 --- a/src/services/production/printerprofiles.js +++ b/src/services/production/printerprofiles.js @@ -91,12 +91,14 @@ export const listPrinterProfilesByPropertiesRouteHandler = async ( req, res, properties = [], - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: printerProfileModel, properties, filter, + masterFilter, populate: ['printer'], }); diff --git a/src/services/production/printers.js b/src/services/production/printers.js index 4e01cf2..3add9f0 100644 --- a/src/services/production/printers.js +++ b/src/services/production/printers.js @@ -54,12 +54,14 @@ export const listPrintersByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: printerModel, properties, filter, + masterFilter, populate: ['vendor', 'host'], }); diff --git a/src/services/sales/clients.js b/src/services/sales/clients.js index 8b126bd..d96a3ac 100644 --- a/src/services/sales/clients.js +++ b/src/services/sales/clients.js @@ -52,12 +52,14 @@ export const listClientsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: clientModel, properties, filter, + masterFilter, }); if (result?.error) { diff --git a/src/services/sales/listings.js b/src/services/sales/listings.js index 767ca20..d9b6c7a 100644 --- a/src/services/sales/listings.js +++ b/src/services/sales/listings.js @@ -93,12 +93,14 @@ export const listListingsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: listingModel, properties, filter, + masterFilter, populate: ['product', 'vendor', 'stockLocation', 'marketplace', 'courierServices'], }); diff --git a/src/services/sales/listingvarients.js b/src/services/sales/listingvarients.js index 412a781..dd2c3fb 100644 --- a/src/services/sales/listingvarients.js +++ b/src/services/sales/listingvarients.js @@ -63,12 +63,14 @@ export const listListingVarientsByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: listingVarientModel, properties, filter, + masterFilter, populate: POPULATE_FIELDS, }); diff --git a/src/services/sales/marketplaces.js b/src/services/sales/marketplaces.js index 69db526..0edec17 100644 --- a/src/services/sales/marketplaces.js +++ b/src/services/sales/marketplaces.js @@ -53,12 +53,14 @@ export const listMarketplacesByPropertiesRouteHandler = async ( req, res, properties = '', - filter = {} + filter = {}, + masterFilter = {} ) => { const result = await listObjectsByProperties({ model: marketplaceModel, properties, filter, + masterFilter, }); if (result?.error) {