From 287e74b682b72a8677492e81617e5c630cfe3e3d Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Fri, 24 Jul 2026 23:19:48 +0100 Subject: [PATCH] Added new route handlers and service functions to retrieve distinct property values for various entities, including invoices, payments, tax records, filament stocks, and more. Updated corresponding routes to support these new functionalities across multiple management and production modules, enhancing data querying capabilities. --- src/database/database.js | 7 +++++++ src/routes/finance/invoices.js | 8 +++++++- src/routes/finance/payments.js | 8 +++++++- src/routes/finance/taxrecords.js | 8 +++++++- src/routes/inventory/filamentstocks.js | 8 +++++++- src/routes/inventory/orderitems.js | 8 +++++++- src/routes/inventory/partstocks.js | 8 +++++++- src/routes/inventory/productstocks.js | 8 +++++++- src/routes/inventory/purchaseorders.js | 8 +++++++- src/routes/inventory/shipments.js | 8 +++++++- src/routes/inventory/stockevents.js | 8 +++++++- src/routes/inventory/stocklocations.js | 8 +++++++- src/routes/inventory/stocktransfers.js | 8 +++++++- src/routes/management/apppasswords.js | 10 ++++++++-- src/routes/management/courier.js | 6 ++++++ src/routes/management/courierservice.js | 6 ++++++ src/routes/management/documentjobs.js | 6 ++++++ src/routes/management/documentprinters.js | 6 ++++++ src/routes/management/documentsizes.js | 6 ++++++ src/routes/management/documenttemplates.js | 10 ++++++++-- src/routes/management/filaments.js | 6 ++++++ src/routes/management/filamentskus.js | 8 +++++++- src/routes/management/files.js | 6 ++++++ src/routes/management/hosts.js | 6 ++++++ src/routes/management/materials.js | 6 ++++++ src/routes/management/notetypes.js | 8 +++++++- src/routes/management/parts.js | 6 ++++++ src/routes/management/partskus.js | 8 +++++++- src/routes/management/productcategories.js | 6 ++++++ src/routes/management/products.js | 6 ++++++ src/routes/management/productskus.js | 8 +++++++- src/routes/management/taxrates.js | 6 ++++++ src/routes/management/users.js | 8 +++++++- src/routes/management/vendors.js | 6 ++++++ src/routes/misc/notes.js | 6 ++++++ src/routes/production/filamentprofiles.js | 6 ++++++ src/routes/production/gcodefiles.js | 8 +++++++- src/routes/production/jobs.js | 8 +++++++- src/routes/production/printerprofiles.js | 6 ++++++ src/routes/production/printers.js | 8 +++++++- src/routes/production/subjobs.js | 8 +++++++- src/routes/sales/clients.js | 8 +++++++- src/routes/sales/listings.js | 6 ++++++ src/routes/sales/listingvarients.js | 8 +++++++- src/routes/sales/marketplaces.js | 8 +++++++- src/routes/sales/salesorders.js | 8 +++++++- src/services/finance/invoices.js | 11 ++++++++++- src/services/finance/payments.js | 9 +++++++++ src/services/finance/taxrecords.js | 11 ++++++++++- src/services/inventory/filamentstocks.js | 11 ++++++++++- src/services/inventory/orderitems.js | 11 ++++++++++- src/services/inventory/partstocks.js | 11 ++++++++++- src/services/inventory/productstocks.js | 11 ++++++++++- src/services/inventory/purchaseorders.js | 11 ++++++++++- src/services/inventory/shipments.js | 11 ++++++++++- src/services/inventory/stockevents.js | 11 ++++++++++- src/services/inventory/stocklocations.js | 11 ++++++++++- src/services/inventory/stocktransfers.js | 11 ++++++++++- src/services/management/apppasswords.js | 11 ++++++++++- src/services/management/courier.js | 9 +++++++++ src/services/management/courierservice.js | 9 +++++++++ src/services/management/documentjobs.js | 11 ++++++++++- src/services/management/documentprinters.js | 11 ++++++++++- src/services/management/documentsizes.js | 11 ++++++++++- src/services/management/documenttemplates.js | 11 ++++++++++- src/services/management/filaments.js | 11 ++++++++++- src/services/management/filamentskus.js | 9 +++++++++ src/services/management/files.js | 9 +++++++++ src/services/management/hosts.js | 11 ++++++++++- src/services/management/materials.js | 9 +++++++++ src/services/management/notetypes.js | 11 ++++++++++- src/services/management/parts.js | 11 ++++++++++- src/services/management/partskus.js | 11 ++++++++++- src/services/management/productcategories.js | 11 ++++++++++- src/services/management/products.js | 11 ++++++++++- src/services/management/productskus.js | 11 ++++++++++- src/services/management/taxrates.js | 11 ++++++++++- src/services/management/users.js | 11 ++++++++++- src/services/management/vendors.js | 11 ++++++++++- src/services/misc/notes.js | 9 +++++++++ src/services/production/filamentprofiles.js | 9 +++++++++ src/services/production/gcodefiles.js | 11 ++++++++++- src/services/production/jobs.js | 8 ++++++++ src/services/production/printerprofiles.js | 9 +++++++++ src/services/production/printers.js | 9 +++++++++ src/services/production/subjobs.js | 11 ++++++++++- src/services/sales/clients.js | 11 ++++++++++- src/services/sales/listings.js | 9 +++++++++ src/services/sales/listingvarients.js | 9 +++++++++ src/services/sales/marketplaces.js | 11 ++++++++++- src/services/sales/salesorders.js | 11 ++++++++++- 91 files changed, 742 insertions(+), 61 deletions(-) diff --git a/src/database/database.js b/src/database/database.js index d4370b9..a843c31 100644 --- a/src/database/database.js +++ b/src/database/database.js @@ -467,6 +467,13 @@ export const listPropertyValues = async ({ model, property, filter = {}, search return await model.aggregate(aggregateCommand); }; +export const getPropertyValues = async ({ model, property }) => { + if (!property) { + return []; + } + return await model.distinct(property); +}; + // Helper to build nested structure for listObjectsByProperty function nestGroups(groups, props, filter, idx = 0) { if (idx >= props.length) return groups; diff --git a/src/routes/finance/invoices.js b/src/routes/finance/invoices.js index c45ac77..277176b 100644 --- a/src/routes/finance/invoices.js +++ b/src/routes/finance/invoices.js @@ -16,7 +16,8 @@ import { acknowledgeInvoiceRouteHandler, cancelInvoiceRouteHandler, postInvoiceRouteHandler, - searchInvoicesRouteHandler + searchInvoicesRouteHandler, + getInvoicePropertyValuesRouteHandler } from '../../services/finance/invoices.js'; // list of invoices @@ -55,6 +56,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getInvoicePropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchInvoicesRouteHandler(req, res, search); diff --git a/src/routes/finance/payments.js b/src/routes/finance/payments.js index 4a23f51..a5c8e27 100644 --- a/src/routes/finance/payments.js +++ b/src/routes/finance/payments.js @@ -17,7 +17,8 @@ import { authorisePaymentRouteHandler, declinePaymentRouteHandler, cancelPaymentRouteHandler, - searchPaymentsRouteHandler + searchPaymentsRouteHandler, + getPaymentPropertyValuesRouteHandler } from '../../services/finance/payments.js'; // list of payments @@ -55,6 +56,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPaymentPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPaymentsRouteHandler(req, res, search); diff --git a/src/routes/finance/taxrecords.js b/src/routes/finance/taxrecords.js index 78bdaff..992467b 100644 --- a/src/routes/finance/taxrecords.js +++ b/src/routes/finance/taxrecords.js @@ -12,7 +12,8 @@ import { listTaxRecordsByPropertiesRouteHandler, getTaxRecordStatsRouteHandler, getTaxRecordHistoryRouteHandler, - searchTaxRecordsRouteHandler + searchTaxRecordsRouteHandler, + getTaxRecordPropertyValuesRouteHandler } from '../../services/finance/taxrecords.js'; // list of tax records @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getTaxRecordPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchTaxRecordsRouteHandler(req, res, search); diff --git a/src/routes/inventory/filamentstocks.js b/src/routes/inventory/filamentstocks.js index 49fbea2..b0d1634 100644 --- a/src/routes/inventory/filamentstocks.js +++ b/src/routes/inventory/filamentstocks.js @@ -13,7 +13,8 @@ import { listFilamentStocksByPropertiesRouteHandler, getFilamentStockStatsRouteHandler, getFilamentStockHistoryRouteHandler, - searchFilamentStocksRouteHandler + searchFilamentStocksRouteHandler, + getFilamentStockPropertyValuesRouteHandler } from '../../services/inventory/filamentstocks.js'; // list of filament stocks @@ -50,6 +51,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getFilamentStockPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchFilamentStocksRouteHandler(req, res, search); diff --git a/src/routes/inventory/orderitems.js b/src/routes/inventory/orderitems.js index da51f01..8197321 100644 --- a/src/routes/inventory/orderitems.js +++ b/src/routes/inventory/orderitems.js @@ -13,7 +13,8 @@ import { listOrderItemsByPropertiesRouteHandler, getOrderItemStatsRouteHandler, getOrderItemHistoryRouteHandler, - searchOrderItemsRouteHandler + searchOrderItemsRouteHandler, + getOrderItemPropertyValuesRouteHandler } from '../../services/inventory/orderitems.js'; // list of order items @@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getOrderItemPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchOrderItemsRouteHandler(req, res, search); diff --git a/src/routes/inventory/partstocks.js b/src/routes/inventory/partstocks.js index fb3d536..0713798 100644 --- a/src/routes/inventory/partstocks.js +++ b/src/routes/inventory/partstocks.js @@ -13,7 +13,8 @@ import { listPartStocksByPropertiesRouteHandler, getPartStockStatsRouteHandler, getPartStockHistoryRouteHandler, - searchPartStocksRouteHandler + searchPartStocksRouteHandler, + getPartStockPropertyValuesRouteHandler } from '../../services/inventory/partstocks.js'; // list of part stocks @@ -42,6 +43,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPartStockPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPartStocksRouteHandler(req, res, search); diff --git a/src/routes/inventory/productstocks.js b/src/routes/inventory/productstocks.js index 1382128..e796fa3 100644 --- a/src/routes/inventory/productstocks.js +++ b/src/routes/inventory/productstocks.js @@ -14,7 +14,8 @@ import { listProductStocksByPropertiesRouteHandler, getProductStockStatsRouteHandler, getProductStockHistoryRouteHandler, - searchProductStocksRouteHandler + searchProductStocksRouteHandler, + getProductStockPropertyValuesRouteHandler } from '../../services/inventory/productstocks.js'; router.get('/', isAuthenticated, (req, res) => { @@ -41,6 +42,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getProductStockPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchProductStocksRouteHandler(req, res, search); diff --git a/src/routes/inventory/purchaseorders.js b/src/routes/inventory/purchaseorders.js index c824155..8c2ac0a 100644 --- a/src/routes/inventory/purchaseorders.js +++ b/src/routes/inventory/purchaseorders.js @@ -16,7 +16,8 @@ import { postPurchaseOrderRouteHandler, acknowledgePurchaseOrderRouteHandler, cancelPurchaseOrderRouteHandler, - searchPurchaseOrdersRouteHandler + searchPurchaseOrdersRouteHandler, + getPurchaseOrderPropertyValuesRouteHandler } from '../../services/inventory/purchaseorders.js'; // list of purchase orders @@ -59,6 +60,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPurchaseOrderPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPurchaseOrdersRouteHandler(req, res, search); diff --git a/src/routes/inventory/shipments.js b/src/routes/inventory/shipments.js index 9900ddd..79be234 100644 --- a/src/routes/inventory/shipments.js +++ b/src/routes/inventory/shipments.js @@ -16,7 +16,8 @@ import { shipShipmentRouteHandler, receiveShipmentRouteHandler, cancelShipmentRouteHandler, - searchShipmentsRouteHandler + searchShipmentsRouteHandler, + getShipmentPropertyValuesRouteHandler } from '../../services/inventory/shipments.js'; // list of shipments @@ -44,6 +45,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getShipmentPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchShipmentsRouteHandler(req, res, search); diff --git a/src/routes/inventory/stockevents.js b/src/routes/inventory/stockevents.js index 6fba4d5..421a88f 100644 --- a/src/routes/inventory/stockevents.js +++ b/src/routes/inventory/stockevents.js @@ -13,7 +13,8 @@ import { listStockEventsByPropertiesRouteHandler, getStockEventStatsRouteHandler, getStockEventHistoryRouteHandler, - searchStockEventsRouteHandler + searchStockEventsRouteHandler, + getStockEventPropertyValuesRouteHandler } from '../../services/inventory/stockevents.js'; // list of stock events @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getStockEventPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchStockEventsRouteHandler(req, res, search); diff --git a/src/routes/inventory/stocklocations.js b/src/routes/inventory/stocklocations.js index df6dcfa..aff895b 100644 --- a/src/routes/inventory/stocklocations.js +++ b/src/routes/inventory/stocklocations.js @@ -13,7 +13,8 @@ import { listStockLocationsByPropertiesRouteHandler, getStockLocationStatsRouteHandler, getStockLocationHistoryRouteHandler, - searchStockLocationsRouteHandler + searchStockLocationsRouteHandler, + getStockLocationPropertyValuesRouteHandler } from '../../services/inventory/stocklocations.js'; router.get('/', isAuthenticated, (req, res) => { @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getStockLocationPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchStockLocationsRouteHandler(req, res, search); diff --git a/src/routes/inventory/stocktransfers.js b/src/routes/inventory/stocktransfers.js index 925611b..331949e 100644 --- a/src/routes/inventory/stocktransfers.js +++ b/src/routes/inventory/stocktransfers.js @@ -14,7 +14,8 @@ import { listStockTransfersByPropertiesRouteHandler, getStockTransferStatsRouteHandler, getStockTransferHistoryRouteHandler, - searchStockTransfersRouteHandler + searchStockTransfersRouteHandler, + getStockTransferPropertyValuesRouteHandler } from '../../services/inventory/stocktransfers.js'; router.get('/', isAuthenticated, (req, res) => { @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getStockTransferPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchStockTransfersRouteHandler(req, res, search); diff --git a/src/routes/management/apppasswords.js b/src/routes/management/apppasswords.js index 6dca369..e76446d 100644 --- a/src/routes/management/apppasswords.js +++ b/src/routes/management/apppasswords.js @@ -13,7 +13,8 @@ import { getAppPasswordStatsRouteHandler, getAppPasswordHistoryRouteHandler, regenerateSecretRouteHandler, - searchAppPasswordsRouteHandler + searchAppPasswordsRouteHandler, + getAppPasswordPropertyValuesRouteHandler, } from '../../services/management/apppasswords.js'; router.get('/', isAuthenticated, (req, res) => { @@ -30,12 +31,17 @@ router.get('/properties', isAuthenticated, (req, res) => { const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {}; listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getAppPasswordPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchAppPasswordsRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newAppPasswordRouteHandler(req, res); }); diff --git a/src/routes/management/courier.js b/src/routes/management/courier.js index 711fac0..e9f7f67 100644 --- a/src/routes/management/courier.js +++ b/src/routes/management/courier.js @@ -13,6 +13,7 @@ import { getCourierStatsRouteHandler, getCourierHistoryRouteHandler, searchCouriersRouteHandler, + getCourierPropertyValuesRouteHandler, } from '../../services/management/courier.js'; // list of couriers @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getCourierPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchCouriersRouteHandler(req, res, search); diff --git a/src/routes/management/courierservice.js b/src/routes/management/courierservice.js index 8c72b1f..cfa0e12 100644 --- a/src/routes/management/courierservice.js +++ b/src/routes/management/courierservice.js @@ -13,6 +13,7 @@ import { getCourierServiceStatsRouteHandler, getCourierServiceHistoryRouteHandler, searchCourierServicesRouteHandler, + getCourierServicePropertyValuesRouteHandler, } from '../../services/management/courierservice.js'; // list of courier services @@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getCourierServicePropertyValuesRouteHandler(req, res, property); +}); + 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 0a75a23..75e1ac5 100644 --- a/src/routes/management/documentjobs.js +++ b/src/routes/management/documentjobs.js @@ -13,6 +13,7 @@ import { getDocumentJobStatsRouteHandler, getDocumentJobHistoryRouteHandler, searchDocumentJobsRouteHandler, + getDocumentJobPropertyValuesRouteHandler, } from '../../services/management/documentjobs.js'; // list of document jobs @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getDocumentJobPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentJobsRouteHandler(req, res, search); diff --git a/src/routes/management/documentprinters.js b/src/routes/management/documentprinters.js index 196c12d..2cccf34 100644 --- a/src/routes/management/documentprinters.js +++ b/src/routes/management/documentprinters.js @@ -13,6 +13,7 @@ import { getDocumentPrinterStatsRouteHandler, getDocumentPrinterHistoryRouteHandler, searchDocumentPrintersRouteHandler, + getDocumentPrinterPropertyValuesRouteHandler, } from '../../services/management/documentprinters.js'; // list of document printers @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getDocumentPrinterPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentPrintersRouteHandler(req, res, search); diff --git a/src/routes/management/documentsizes.js b/src/routes/management/documentsizes.js index 11428c6..f88a280 100644 --- a/src/routes/management/documentsizes.js +++ b/src/routes/management/documentsizes.js @@ -13,6 +13,7 @@ import { getDocumentSizeStatsRouteHandler, getDocumentSizeHistoryRouteHandler, searchDocumentSizesRouteHandler, + getDocumentSizePropertyValuesRouteHandler, } from '../../services/management/documentsizes.js'; // list of document sizes @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getDocumentSizePropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentSizesRouteHandler(req, res, search); diff --git a/src/routes/management/documenttemplates.js b/src/routes/management/documenttemplates.js index e2892e5..e12c48d 100644 --- a/src/routes/management/documenttemplates.js +++ b/src/routes/management/documenttemplates.js @@ -12,7 +12,8 @@ import { listDocumentTemplatesByPropertiesRouteHandler, getDocumentTemplateStatsRouteHandler, getDocumentTemplateHistoryRouteHandler, - searchDocumentTemplatesRouteHandler + getDocumentTemplatePropertyValuesRouteHandler, + searchDocumentTemplatesRouteHandler, } from '../../services/management/documenttemplates.js'; // list of document templates @@ -33,12 +34,17 @@ router.get('/properties', isAuthenticated, (req, res) => { } listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getDocumentTemplatePropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchDocumentTemplatesRouteHandler(req, res, search); }); - router.post('/', isAuthenticated, (req, res) => { newDocumentTemplateRouteHandler(req, res); }); diff --git a/src/routes/management/filaments.js b/src/routes/management/filaments.js index 3c10e1d..7956189 100644 --- a/src/routes/management/filaments.js +++ b/src/routes/management/filaments.js @@ -14,6 +14,7 @@ import { getFilamentStatsRouteHandler, getFilamentHistoryRouteHandler, searchFilamentsRouteHandler, + getFilamentPropertyValuesRouteHandler, } from '../../services/management/filaments.js'; // list of filaments @@ -46,6 +47,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getFilamentPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchFilamentsRouteHandler(req, res, search); diff --git a/src/routes/management/filamentskus.js b/src/routes/management/filamentskus.js index 31acc3a..5a5b23d 100644 --- a/src/routes/management/filamentskus.js +++ b/src/routes/management/filamentskus.js @@ -12,7 +12,8 @@ import { listFilamentSkusByPropertiesRouteHandler, getFilamentSkuStatsRouteHandler, getFilamentSkuHistoryRouteHandler, - searchFilamentSkusRouteHandler + searchFilamentSkusRouteHandler, + getFilamentSkuPropertyValuesRouteHandler } from '../../services/management/filamentskus.js'; router.get('/', isAuthenticated, (req, res) => { @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getFilamentSkuPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchFilamentSkusRouteHandler(req, res, search); diff --git a/src/routes/management/files.js b/src/routes/management/files.js index 259235a..af9182a 100644 --- a/src/routes/management/files.js +++ b/src/routes/management/files.js @@ -15,6 +15,7 @@ import { getFileStatsRouteHandler, getFileHistoryRouteHandler, searchFilesRouteHandler, + getFilePropertyValuesRouteHandler, } from '../../services/management/files.js'; // list of files @@ -36,6 +37,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getFilePropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchFilesRouteHandler(req, res, search); diff --git a/src/routes/management/hosts.js b/src/routes/management/hosts.js index b36f856..e532fa7 100644 --- a/src/routes/management/hosts.js +++ b/src/routes/management/hosts.js @@ -13,6 +13,7 @@ import { getHostStatsRouteHandler, getHostHistoryRouteHandler, searchHostsRouteHandler, + getHostPropertyValuesRouteHandler, } from '../../services/management/hosts.js'; // list of hosts @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getHostPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchHostsRouteHandler(req, res, search); diff --git a/src/routes/management/materials.js b/src/routes/management/materials.js index d066c01..7af36c1 100644 --- a/src/routes/management/materials.js +++ b/src/routes/management/materials.js @@ -12,6 +12,7 @@ import { getMaterialStatsRouteHandler, getMaterialHistoryRouteHandler, searchMaterialsRouteHandler, + getMaterialPropertyValuesRouteHandler, } from '../../services/management/materials.js'; // list of materials @@ -42,6 +43,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getMaterialPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchMaterialsRouteHandler(req, res, search); diff --git a/src/routes/management/notetypes.js b/src/routes/management/notetypes.js index 4695efe..690f671 100644 --- a/src/routes/management/notetypes.js +++ b/src/routes/management/notetypes.js @@ -12,7 +12,8 @@ import { listNoteTypesByPropertiesRouteHandler, getNoteTypeStatsRouteHandler, getNoteTypeHistoryRouteHandler, - searchNoteTypesRouteHandler + searchNoteTypesRouteHandler, + getNoteTypePropertyValuesRouteHandler } from '../../services/management/notetypes.js'; // list of note types @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getNoteTypePropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchNoteTypesRouteHandler(req, res, search); diff --git a/src/routes/management/parts.js b/src/routes/management/parts.js index 560b241..b1ddff1 100644 --- a/src/routes/management/parts.js +++ b/src/routes/management/parts.js @@ -13,6 +13,7 @@ import { getPartStatsRouteHandler, getPartHistoryRouteHandler, searchPartsRouteHandler, + getPartPropertyValuesRouteHandler, } from '../../services/management/parts.js'; // list of parts @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPartPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPartsRouteHandler(req, res, search); diff --git a/src/routes/management/partskus.js b/src/routes/management/partskus.js index bc8d8c6..5ba8621 100644 --- a/src/routes/management/partskus.js +++ b/src/routes/management/partskus.js @@ -12,7 +12,8 @@ import { listPartSkusByPropertiesRouteHandler, getPartSkuStatsRouteHandler, getPartSkuHistoryRouteHandler, - searchPartSkusRouteHandler + searchPartSkusRouteHandler, + getPartSkuPropertyValuesRouteHandler } from '../../services/management/partskus.js'; router.get('/', isAuthenticated, (req, res) => { @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPartSkuPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPartSkusRouteHandler(req, res, search); diff --git a/src/routes/management/productcategories.js b/src/routes/management/productcategories.js index d50420d..19c5572 100644 --- a/src/routes/management/productcategories.js +++ b/src/routes/management/productcategories.js @@ -11,6 +11,7 @@ import { listProductCategoriesRouteHandler, newProductCategoryRouteHandler, searchProductCategoriesRouteHandler, + getProductCategoryPropertyValuesRouteHandler, } from '../../services/management/productcategories.js'; const router = express.Router(); @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getProductCategoryPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchProductCategoriesRouteHandler(req, res, search); diff --git a/src/routes/management/products.js b/src/routes/management/products.js index 962f46c..ab85cde 100644 --- a/src/routes/management/products.js +++ b/src/routes/management/products.js @@ -13,6 +13,7 @@ import { getProductStatsRouteHandler, getProductHistoryRouteHandler, searchProductsRouteHandler, + getProductPropertyValuesRouteHandler, } from '../../services/management/products.js'; // list of products @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getProductPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchProductsRouteHandler(req, res, search); diff --git a/src/routes/management/productskus.js b/src/routes/management/productskus.js index a73b5ee..4aedf60 100644 --- a/src/routes/management/productskus.js +++ b/src/routes/management/productskus.js @@ -12,7 +12,8 @@ import { listProductSkusByPropertiesRouteHandler, getProductSkuStatsRouteHandler, getProductSkuHistoryRouteHandler, - searchProductSkusRouteHandler + searchProductSkusRouteHandler, + getProductSkuPropertyValuesRouteHandler } from '../../services/management/productskus.js'; router.get('/', isAuthenticated, (req, res) => { @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getProductSkuPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchProductSkusRouteHandler(req, res, search); diff --git a/src/routes/management/taxrates.js b/src/routes/management/taxrates.js index dbc14e7..b941356 100644 --- a/src/routes/management/taxrates.js +++ b/src/routes/management/taxrates.js @@ -13,6 +13,7 @@ import { getTaxRateStatsRouteHandler, getTaxRateHistoryRouteHandler, searchTaxRatesRouteHandler, + getTaxRatePropertyValuesRouteHandler, } from '../../services/management/taxrates.js'; // list of tax rates @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getTaxRatePropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchTaxRatesRouteHandler(req, res, search); diff --git a/src/routes/management/users.js b/src/routes/management/users.js index f6ef435..a2b338f 100644 --- a/src/routes/management/users.js +++ b/src/routes/management/users.js @@ -11,7 +11,8 @@ import { getUserStatsRouteHandler, getUserHistoryRouteHandler, setAppPasswordRouteHandler, - searchUsersRouteHandler + searchUsersRouteHandler, + getUserPropertyValuesRouteHandler } from '../../services/management/users.js'; // list of document templates @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getUserPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchUsersRouteHandler(req, res, search); diff --git a/src/routes/management/vendors.js b/src/routes/management/vendors.js index 4b2169e..dee1187 100644 --- a/src/routes/management/vendors.js +++ b/src/routes/management/vendors.js @@ -13,6 +13,7 @@ import { getVendorStatsRouteHandler, getVendorHistoryRouteHandler, searchVendorsRouteHandler, + getVendorPropertyValuesRouteHandler, } from '../../services/management/vendors.js'; // list of vendors @@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getVendorPropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchVendorsRouteHandler(req, res, search); diff --git a/src/routes/misc/notes.js b/src/routes/misc/notes.js index 0b6603c..915f113 100644 --- a/src/routes/misc/notes.js +++ b/src/routes/misc/notes.js @@ -9,6 +9,7 @@ import { listNotesByPropertiesRouteHandler, getNoteStatsRouteHandler, getNoteHistoryRouteHandler, + getNotePropertyValuesRouteHandler, } from '../../services/misc/notes.js'; import { getFilter, convertPropertiesString } from '../../utils.js'; @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listNotesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getNotePropertyValuesRouteHandler(req, res, property); +}); + // create new note router.post('/', isAuthenticated, (req, res) => { newNoteRouteHandler(req, res); diff --git a/src/routes/production/filamentprofiles.js b/src/routes/production/filamentprofiles.js index 5e2c094..25365ad 100644 --- a/src/routes/production/filamentprofiles.js +++ b/src/routes/production/filamentprofiles.js @@ -9,6 +9,7 @@ import { listFilamentProfilesRouteHandler, newFilamentProfileRouteHandler, searchFilamentProfilesRouteHandler, + getFilamentProfilePropertyValuesRouteHandler, } from '../../services/production/filamentprofiles.js'; const router = express.Router(); @@ -29,6 +30,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getFilamentProfilePropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { searchFilamentProfilesRouteHandler(req, res, req.query.search); }); diff --git a/src/routes/production/gcodefiles.js b/src/routes/production/gcodefiles.js index 36c32f6..90107f7 100644 --- a/src/routes/production/gcodefiles.js +++ b/src/routes/production/gcodefiles.js @@ -10,7 +10,8 @@ import { listGCodeFilesByPropertiesRouteHandler, getGCodeFileContentRouteHandler, getGCodeFileStatsRouteHandler, - searchGCodeFilesRouteHandler + searchGCodeFilesRouteHandler, + getGCodeFilePropertyValuesRouteHandler } from '../../services/production/gcodefiles.js'; import { convertPropertiesString, getFilter } from '../../utils.js'; @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getGCodeFilePropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchGCodeFilesRouteHandler(req, res, search); diff --git a/src/routes/production/jobs.js b/src/routes/production/jobs.js index 4253373..b21e5bc 100644 --- a/src/routes/production/jobs.js +++ b/src/routes/production/jobs.js @@ -11,7 +11,8 @@ import { editJobRouteHandler, getJobStatsRouteHandler, getJobHistoryRouteHandler, - searchJobsRouteHandler + searchJobsRouteHandler, + getJobPropertyValuesRouteHandler } from '../../services/production/jobs.js'; import { convertPropertiesString, getFilter } from '../../utils.js'; @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getJobPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchJobsRouteHandler(req, res, search); diff --git a/src/routes/production/printerprofiles.js b/src/routes/production/printerprofiles.js index 5d2cc58..7fafe34 100644 --- a/src/routes/production/printerprofiles.js +++ b/src/routes/production/printerprofiles.js @@ -9,6 +9,7 @@ import { listPrinterProfilesRouteHandler, newPrinterProfileRouteHandler, searchPrinterProfilesRouteHandler, + getPrinterProfilePropertyValuesRouteHandler, } from '../../services/production/printerprofiles.js'; const router = express.Router(); @@ -29,6 +30,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPrinterProfilePropertyValuesRouteHandler(req, res, property); +}); + router.get('/search', isAuthenticated, (req, res) => { searchPrinterProfilesRouteHandler(req, res, req.query.search); }); diff --git a/src/routes/production/printers.js b/src/routes/production/printers.js index 74e6fca..24e07a5 100644 --- a/src/routes/production/printers.js +++ b/src/routes/production/printers.js @@ -10,7 +10,8 @@ import { getPrinterStatsRouteHandler, listPrintersByPropertiesRouteHandler, getPrinterHistoryRouteHandler, - searchPrintersRouteHandler + searchPrintersRouteHandler, + getPrinterPropertyValuesRouteHandler } from '../../services/production/printers.js'; import { convertPropertiesString, getFilter } from '../../utils.js'; @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getPrinterPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchPrintersRouteHandler(req, res, search); diff --git a/src/routes/production/subjobs.js b/src/routes/production/subjobs.js index d7c4fcc..630e9ec 100644 --- a/src/routes/production/subjobs.js +++ b/src/routes/production/subjobs.js @@ -8,7 +8,8 @@ import { getSubJobRouteHandler, getSubJobStatsRouteHandler, getSubJobHistoryRouteHandler, - searchSubJobsRouteHandler + searchSubJobsRouteHandler, + getSubJobPropertyValuesRouteHandler } from '../../services/production/subjobs.js'; import { getFilter, convertPropertiesString } from '../../utils.js'; @@ -30,6 +31,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getSubJobPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchSubJobsRouteHandler(req, res, search); diff --git a/src/routes/sales/clients.js b/src/routes/sales/clients.js index 8b87690..786e924 100644 --- a/src/routes/sales/clients.js +++ b/src/routes/sales/clients.js @@ -12,7 +12,8 @@ import { listClientsByPropertiesRouteHandler, getClientStatsRouteHandler, getClientHistoryRouteHandler, - searchClientsRouteHandler + searchClientsRouteHandler, + getClientPropertyValuesRouteHandler } from '../../services/sales/clients.js'; // list of clients @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getClientPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchClientsRouteHandler(req, res, search); diff --git a/src/routes/sales/listings.js b/src/routes/sales/listings.js index ef8f814..bca9837 100644 --- a/src/routes/sales/listings.js +++ b/src/routes/sales/listings.js @@ -15,6 +15,7 @@ import { publishListingRouteHandler, unpublishListingRouteHandler, searchListingsRouteHandler, + getListingPropertyValuesRouteHandler, } from '../../services/sales/listings.js'; router.get('/', isAuthenticated, (req, res) => { @@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getListingPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchListingsRouteHandler(req, res, search); diff --git a/src/routes/sales/listingvarients.js b/src/routes/sales/listingvarients.js index b5916a2..2d121c5 100644 --- a/src/routes/sales/listingvarients.js +++ b/src/routes/sales/listingvarients.js @@ -14,7 +14,8 @@ import { getListingVarientHistoryRouteHandler, publishListingVarientRouteHandler, unpublishListingVarientRouteHandler, - searchListingVarientsRouteHandler + searchListingVarientsRouteHandler, + getListingVarientPropertyValuesRouteHandler } from '../../services/sales/listingvarients.js'; router.get('/', isAuthenticated, (req, res) => { @@ -52,6 +53,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getListingVarientPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchListingVarientsRouteHandler(req, res, search); diff --git a/src/routes/sales/marketplaces.js b/src/routes/sales/marketplaces.js index 23bc67a..afdeec8 100644 --- a/src/routes/sales/marketplaces.js +++ b/src/routes/sales/marketplaces.js @@ -18,7 +18,8 @@ import { syncMarketplaceItemsRouteHandler, syncMarketplaceOrdersRouteHandler, marketplaceWebhookRouteHandler, - searchMarketplacesRouteHandler + searchMarketplacesRouteHandler, + getMarketplacePropertyValuesRouteHandler } from '../../services/sales/marketplaces.js'; router.get('/', isAuthenticated, (req, res) => { @@ -38,6 +39,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listMarketplacesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getMarketplacePropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchMarketplacesRouteHandler(req, res, search); diff --git a/src/routes/sales/salesorders.js b/src/routes/sales/salesorders.js index 4511965..d5c267f 100644 --- a/src/routes/sales/salesorders.js +++ b/src/routes/sales/salesorders.js @@ -16,7 +16,8 @@ import { postSalesOrderRouteHandler, confirmSalesOrderRouteHandler, cancelSalesOrderRouteHandler, - searchSalesOrdersRouteHandler + searchSalesOrdersRouteHandler, + getSalesOrderPropertyValuesRouteHandler } from '../../services/sales/salesorders.js'; // list of sales orders @@ -37,6 +38,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); + +router.get('/values', isAuthenticated, (req, res) => { + const { property } = req.query; + getSalesOrderPropertyValuesRouteHandler(req, res, property); +}); router.get('/search', isAuthenticated, (req, res) => { const { search } = req.query; searchSalesOrdersRouteHandler(req, res, search); diff --git a/src/services/finance/invoices.js b/src/services/finance/invoices.js index c37bf47..5f0ea7b 100644 --- a/src/services/finance/invoices.js +++ b/src/services/finance/invoices.js @@ -13,7 +13,8 @@ import { getModelStats, getModelHistory, checkStates, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; @@ -93,6 +94,14 @@ export const listInvoicesByPropertiesRouteHandler = async ( res.send(result); }; +export const getInvoicePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: invoiceModel, + property, + }); + res.send(result); +}; + export const searchInvoicesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: invoiceModel, diff --git a/src/services/finance/payments.js b/src/services/finance/payments.js index cc093b9..f799daf 100644 --- a/src/services/finance/payments.js +++ b/src/services/finance/payments.js @@ -14,6 +14,7 @@ import { getModelHistory, checkStates, searchObjects, + getPropertyValues, } from '../../database/database.js'; import { invoiceModel } from '../../database/schemas/finance/invoice.schema.js'; @@ -82,6 +83,14 @@ export const listPaymentsByPropertiesRouteHandler = async ( res.send(result); }; +export const getPaymentPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: paymentModel, + property, + }); + res.send(result); +}; + export const searchPaymentsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: paymentModel, diff --git a/src/services/finance/taxrecords.js b/src/services/finance/taxrecords.js index 894999f..76c8962 100644 --- a/src/services/finance/taxrecords.js +++ b/src/services/finance/taxrecords.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('TaxRecords'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listTaxRecordsByPropertiesRouteHandler = async ( res.send(result); }; +export const getTaxRecordPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: taxRecordModel, + property, + }); + res.send(result); +}; + export const searchTaxRecordsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: taxRecordModel, diff --git a/src/services/inventory/filamentstocks.js b/src/services/inventory/filamentstocks.js index ab985f7..74da5e7 100644 --- a/src/services/inventory/filamentstocks.js +++ b/src/services/inventory/filamentstocks.js @@ -12,7 +12,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Filament Stocks'); logger.level = config.server.logLevel; @@ -79,6 +80,14 @@ export const listFilamentStocksByPropertiesRouteHandler = async ( res.send(result); }; +export const getFilamentStockPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: filamentStockModel, + property, + }); + res.send(result); +}; + export const searchFilamentStocksRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: filamentStockModel, diff --git a/src/services/inventory/orderitems.js b/src/services/inventory/orderitems.js index 11b4d0e..267d596 100644 --- a/src/services/inventory/orderitems.js +++ b/src/services/inventory/orderitems.js @@ -13,7 +13,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Order Items'); logger.level = config.server.logLevel; @@ -171,6 +172,14 @@ export const listOrderItemsByPropertiesRouteHandler = async ( res.send(result); }; +export const getOrderItemPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: orderItemModel, + property, + }); + res.send(result); +}; + export const searchOrderItemsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: orderItemModel, diff --git a/src/services/inventory/partstocks.js b/src/services/inventory/partstocks.js index 3b326ec..a71cf37 100644 --- a/src/services/inventory/partstocks.js +++ b/src/services/inventory/partstocks.js @@ -12,7 +12,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Part Stocks'); logger.level = config.server.logLevel; @@ -75,6 +76,14 @@ export const listPartStocksByPropertiesRouteHandler = async ( res.send(result); }; +export const getPartStockPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: partStockModel, + property, + }); + res.send(result); +}; + export const searchPartStocksRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: partStockModel, diff --git a/src/services/inventory/productstocks.js b/src/services/inventory/productstocks.js index 274caef..704bcea 100644 --- a/src/services/inventory/productstocks.js +++ b/src/services/inventory/productstocks.js @@ -13,7 +13,8 @@ import { getModelStats, getModelHistory, checkStates, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; import { productSkuModel } from '../../database/schemas/management/productsku.schema.js'; const logger = log4js.getLogger('Product Stocks'); @@ -81,6 +82,14 @@ export const listProductStocksByPropertiesRouteHandler = async ( res.send(result); }; +export const getProductStockPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: productStockModel, + property, + }); + res.send(result); +}; + export const searchProductStocksRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: productStockModel, diff --git a/src/services/inventory/purchaseorders.js b/src/services/inventory/purchaseorders.js index 8b7d12d..b7940bb 100644 --- a/src/services/inventory/purchaseorders.js +++ b/src/services/inventory/purchaseorders.js @@ -13,7 +13,8 @@ import { getModelStats, getModelHistory, checkStates, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; @@ -79,6 +80,14 @@ export const listPurchaseOrdersByPropertiesRouteHandler = async ( res.send(result); }; +export const getPurchaseOrderPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: purchaseOrderModel, + property, + }); + res.send(result); +}; + export const searchPurchaseOrdersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: purchaseOrderModel, diff --git a/src/services/inventory/shipments.js b/src/services/inventory/shipments.js index b36879c..6fa9a86 100644 --- a/src/services/inventory/shipments.js +++ b/src/services/inventory/shipments.js @@ -13,7 +13,8 @@ import { getModelStats, getModelHistory, checkStates, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Shipments'); logger.level = config.server.logLevel; @@ -77,6 +78,14 @@ export const listShipmentsByPropertiesRouteHandler = async ( res.send(result); }; +export const getShipmentPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: shipmentModel, + property, + }); + res.send(result); +}; + export const searchShipmentsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: shipmentModel, diff --git a/src/services/inventory/stockevents.js b/src/services/inventory/stockevents.js index 21c29c9..8572d78 100644 --- a/src/services/inventory/stockevents.js +++ b/src/services/inventory/stockevents.js @@ -12,7 +12,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Stock Events'); logger.level = config.server.logLevel; @@ -77,6 +78,14 @@ export const listStockEventsByPropertiesRouteHandler = async ( res.send(result); }; +export const getStockEventPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: stockEventModel, + property, + }); + res.send(result); +}; + export const searchStockEventsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: stockEventModel, diff --git a/src/services/inventory/stocklocations.js b/src/services/inventory/stocklocations.js index 69b15e2..71fafb8 100644 --- a/src/services/inventory/stocklocations.js +++ b/src/services/inventory/stocklocations.js @@ -12,7 +12,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Stock Locations'); @@ -74,6 +75,14 @@ export const listStockLocationsByPropertiesRouteHandler = async ( res.send(result); }; +export const getStockLocationPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: stockLocationModel, + property, + }); + res.send(result); +}; + export const searchStockLocationsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: stockLocationModel, diff --git a/src/services/inventory/stocktransfers.js b/src/services/inventory/stocktransfers.js index 3ea8a73..52a971d 100644 --- a/src/services/inventory/stocktransfers.js +++ b/src/services/inventory/stocktransfers.js @@ -18,7 +18,8 @@ import { getModelStats, getModelHistory, checkStates, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Stock Transfers'); @@ -306,6 +307,14 @@ export const listStockTransfersByPropertiesRouteHandler = async ( res.send(result); }; +export const getStockTransferPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: stockTransferModel, + property, + }); + res.send(result); +}; + export const searchStockTransfersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: stockTransferModel, diff --git a/src/services/management/apppasswords.js b/src/services/management/apppasswords.js index d4efb60..6b89577 100644 --- a/src/services/management/apppasswords.js +++ b/src/services/management/apppasswords.js @@ -13,7 +13,8 @@ import { deleteObject, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('AppPasswords'); @@ -80,6 +81,14 @@ export const listAppPasswordsByPropertiesRouteHandler = async ( res.send(result); }; +export const getAppPasswordPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: appPasswordModel, + property, + }); + res.send(result); +}; + export const searchAppPasswordsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: appPasswordModel, diff --git a/src/services/management/courier.js b/src/services/management/courier.js index e34a6d2..7a1f099 100644 --- a/src/services/management/courier.js +++ b/src/services/management/courier.js @@ -12,6 +12,7 @@ import { getModelStats, getModelHistory, searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Couriers'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listCouriersByPropertiesRouteHandler = async ( res.send(result); }; +export const getCourierPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: courierModel, + property, + }); + res.send(result); +}; + export const searchCouriersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: courierModel, diff --git a/src/services/management/courierservice.js b/src/services/management/courierservice.js index 7285c8a..dc8cd43 100644 --- a/src/services/management/courierservice.js +++ b/src/services/management/courierservice.js @@ -12,6 +12,7 @@ import { getModelStats, getModelHistory, searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('CourierServices'); logger.level = config.server.logLevel; @@ -74,6 +75,14 @@ export const listCourierServicesByPropertiesRouteHandler = async ( res.send(result); }; +export const getCourierServicePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: courierServiceModel, + property, + }); + res.send(result); +}; + export const searchCourierServicesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: courierServiceModel, diff --git a/src/services/management/documentjobs.js b/src/services/management/documentjobs.js index 418461e..5d65163 100644 --- a/src/services/management/documentjobs.js +++ b/src/services/management/documentjobs.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Document Jobs'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listDocumentJobsByPropertiesRouteHandler = async ( res.send(result); }; +export const getDocumentJobPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: documentJobModel, + property, + }); + res.send(result); +}; + export const searchDocumentJobsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: documentJobModel, diff --git a/src/services/management/documentprinters.js b/src/services/management/documentprinters.js index 60515fe..001363d 100644 --- a/src/services/management/documentprinters.js +++ b/src/services/management/documentprinters.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Document Templates'); logger.level = config.server.logLevel; @@ -76,6 +77,14 @@ export const listDocumentPrintersByPropertiesRouteHandler = async ( res.send(result); }; +export const getDocumentPrinterPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: documentPrinterModel, + property, + }); + res.send(result); +}; + export const searchDocumentPrintersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: documentPrinterModel, diff --git a/src/services/management/documentsizes.js b/src/services/management/documentsizes.js index 992b5bb..92b1b72 100644 --- a/src/services/management/documentsizes.js +++ b/src/services/management/documentsizes.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Document Sizes'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listDocumentSizesByPropertiesRouteHandler = async ( res.send(result); }; +export const getDocumentSizePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: documentSizeModel, + property, + }); + res.send(result); +}; + export const searchDocumentSizesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: documentSizeModel, diff --git a/src/services/management/documenttemplates.js b/src/services/management/documenttemplates.js index c8e3577..190d47a 100644 --- a/src/services/management/documenttemplates.js +++ b/src/services/management/documenttemplates.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Document Templates'); logger.level = config.server.logLevel; @@ -80,6 +81,14 @@ export const listDocumentTemplatesByPropertiesRouteHandler = async ( res.send(result); }; +export const getDocumentTemplatePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: documentTemplateModel, + property, + }); + res.send(result); +}; + export const searchDocumentTemplatesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: documentTemplateModel, diff --git a/src/services/management/filaments.js b/src/services/management/filaments.js index 39b8027..b02bc99 100644 --- a/src/services/management/filaments.js +++ b/src/services/management/filaments.js @@ -12,7 +12,8 @@ import { deleteObject, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Filaments'); @@ -76,6 +77,14 @@ export const listFilamentsByPropertiesRouteHandler = async ( res.send(result); }; +export const getFilamentPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: filamentModel, + property, + }); + res.send(result); +}; + export const searchFilamentsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: filamentModel, diff --git a/src/services/management/filamentskus.js b/src/services/management/filamentskus.js index 9407cb6..8a232aa 100644 --- a/src/services/management/filamentskus.js +++ b/src/services/management/filamentskus.js @@ -12,6 +12,7 @@ import { getModelStats, getModelHistory, searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Filament SKUs'); logger.level = config.server.logLevel; @@ -74,6 +75,14 @@ export const listFilamentSkusByPropertiesRouteHandler = async ( res.send(result); }; +export const getFilamentSkuPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: filamentSkuModel, + property, + }); + res.send(result); +}; + export const searchFilamentSkusRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: filamentSkuModel, diff --git a/src/services/management/files.js b/src/services/management/files.js index 71322e8..53d6876 100644 --- a/src/services/management/files.js +++ b/src/services/management/files.js @@ -16,6 +16,7 @@ import { getModelStats, getModelHistory, searchObjects, + getPropertyValues, } from '../../database/database.js'; import { uploadFile, @@ -107,6 +108,14 @@ export const listFilesByPropertiesRouteHandler = async ( res.send(result); }; +export const getFilePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: fileModel, + property, + }); + res.send(result); +}; + export const searchFilesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: fileModel, diff --git a/src/services/management/hosts.js b/src/services/management/hosts.js index 95827a3..817705d 100644 --- a/src/services/management/hosts.js +++ b/src/services/management/hosts.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Hosts'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listHostsByPropertiesRouteHandler = async ( res.send(result); }; +export const getHostPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: hostModel, + property, + }); + res.send(result); +}; + export const searchHostsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: hostModel, diff --git a/src/services/management/materials.js b/src/services/management/materials.js index 56c6bb0..25eb663 100644 --- a/src/services/management/materials.js +++ b/src/services/management/materials.js @@ -11,6 +11,7 @@ import { getModelStats, getModelHistory, searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Materials'); @@ -74,6 +75,14 @@ export const listMaterialsByPropertiesRouteHandler = async ( res.send(result); }; +export const getMaterialPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: materialModel, + property, + }); + res.send(result); +}; + export const searchMaterialsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: materialModel, diff --git a/src/services/management/notetypes.js b/src/services/management/notetypes.js index 85bfb61..1241e4a 100644 --- a/src/services/management/notetypes.js +++ b/src/services/management/notetypes.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Note Types'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listNoteTypesByPropertiesRouteHandler = async ( res.send(result); }; +export const getNoteTypePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: noteTypeModel, + property, + }); + res.send(result); +}; + export const searchNoteTypesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: noteTypeModel, diff --git a/src/services/management/parts.js b/src/services/management/parts.js index a241ca5..e3510e5 100644 --- a/src/services/management/parts.js +++ b/src/services/management/parts.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Parts'); logger.level = config.server.logLevel; @@ -74,6 +75,14 @@ export const listPartsByPropertiesRouteHandler = async ( res.send(result); }; +export const getPartPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: partModel, + property, + }); + res.send(result); +}; + export const searchPartsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: partModel, diff --git a/src/services/management/partskus.js b/src/services/management/partskus.js index 5e63848..06b6aa8 100644 --- a/src/services/management/partskus.js +++ b/src/services/management/partskus.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Part SKUs'); logger.level = config.server.logLevel; @@ -80,6 +81,14 @@ export const listPartSkusByPropertiesRouteHandler = async ( res.send(result); }; +export const getPartSkuPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: partSkuModel, + property, + }); + res.send(result); +}; + export const searchPartSkusRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: partSkuModel, diff --git a/src/services/management/productcategories.js b/src/services/management/productcategories.js index b080a89..6261ac2 100644 --- a/src/services/management/productcategories.js +++ b/src/services/management/productcategories.js @@ -11,7 +11,8 @@ import { listObjects, listObjectsByProperties, newObject, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('ProductCategories'); @@ -75,6 +76,14 @@ export const listProductCategoriesByPropertiesRouteHandler = async ( res.send(result); }; +export const getProductCategoryPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: productCategoryModel, + property, + }); + res.send(result); +}; + export const searchProductCategoriesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: productCategoryModel, diff --git a/src/services/management/products.js b/src/services/management/products.js index ab87887..87fd133 100644 --- a/src/services/management/products.js +++ b/src/services/management/products.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Products'); logger.level = config.server.logLevel; @@ -74,6 +75,14 @@ export const listProductsByPropertiesRouteHandler = async ( res.send(result); }; +export const getProductPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: productModel, + property, + }); + res.send(result); +}; + export const searchProductsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: productModel, diff --git a/src/services/management/productskus.js b/src/services/management/productskus.js index f406d19..d108a70 100644 --- a/src/services/management/productskus.js +++ b/src/services/management/productskus.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Product SKUs'); logger.level = config.server.logLevel; @@ -83,6 +84,14 @@ export const listProductSkusByPropertiesRouteHandler = async ( res.send(result); }; +export const getProductSkuPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: productSkuModel, + property, + }); + res.send(result); +}; + export const searchProductSkusRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: productSkuModel, diff --git a/src/services/management/taxrates.js b/src/services/management/taxrates.js index 5c34eed..bd634e8 100644 --- a/src/services/management/taxrates.js +++ b/src/services/management/taxrates.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('TaxRates'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listTaxRatesByPropertiesRouteHandler = async ( res.send(result); }; +export const getTaxRatePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: taxRateModel, + property, + }); + res.send(result); +}; + export const searchTaxRatesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: taxRateModel, diff --git a/src/services/management/users.js b/src/services/management/users.js index e79b431..f7a6cec 100644 --- a/src/services/management/users.js +++ b/src/services/management/users.js @@ -11,7 +11,8 @@ import { editObject, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Users'); @@ -73,6 +74,14 @@ export const listUsersByPropertiesRouteHandler = async ( res.send(result); }; +export const getUserPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: userModel, + property, + }); + res.send(result); +}; + export const searchUsersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: userModel, diff --git a/src/services/management/vendors.js b/src/services/management/vendors.js index 34acc27..c583f96 100644 --- a/src/services/management/vendors.js +++ b/src/services/management/vendors.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Vendors'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listVendorsByPropertiesRouteHandler = async ( res.send(result); }; +export const getVendorPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: vendorModel, + property, + }); + res.send(result); +}; + export const searchVendorsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: vendorModel, diff --git a/src/services/misc/notes.js b/src/services/misc/notes.js index 67d5cf9..6e6576a 100644 --- a/src/services/misc/notes.js +++ b/src/services/misc/notes.js @@ -11,6 +11,7 @@ import { recursivelyDeleteChildObjects, getModelStats, getModelHistory, + getPropertyValues, } from '../../database/database.js'; import mongoose from 'mongoose'; import { newNoteNotification } from '../../utils.js'; @@ -76,6 +77,14 @@ export const listNotesByPropertiesRouteHandler = async ( res.send(result); }; +export const getNotePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: noteModel, + property, + }); + res.send(result); +}; + export const getNoteRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/production/filamentprofiles.js b/src/services/production/filamentprofiles.js index 1f90b3a..7a52dee 100644 --- a/src/services/production/filamentprofiles.js +++ b/src/services/production/filamentprofiles.js @@ -10,6 +10,7 @@ import { listObjectsByProperties, newObject, searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('FilamentProfiles'); @@ -223,6 +224,14 @@ export const listFilamentProfilesByPropertiesRouteHandler = async ( res.send(result); }; +export const getFilamentProfilePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: filamentProfileModel, + property, + }); + res.send(result); +}; + export const searchFilamentProfilesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: filamentProfileModel, diff --git a/src/services/production/gcodefiles.js b/src/services/production/gcodefiles.js index 88e4197..6c9d884 100644 --- a/src/services/production/gcodefiles.js +++ b/src/services/production/gcodefiles.js @@ -8,7 +8,8 @@ import { listObjects, listObjectsByProperties, newObject, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; import { getFileContentRouteHandler } from '../management/files.js'; import mongoose from 'mongoose'; @@ -74,6 +75,14 @@ export const listGCodeFilesByPropertiesRouteHandler = async ( res.send(result); }; +export const getGCodeFilePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: gcodeFileModel, + property, + }); + res.send(result); +}; + export const searchGCodeFilesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: gcodeFileModel, diff --git a/src/services/production/jobs.js b/src/services/production/jobs.js index d43ba35..bf21ba4 100644 --- a/src/services/production/jobs.js +++ b/src/services/production/jobs.js @@ -74,6 +74,14 @@ export const listJobsByPropertiesRouteHandler = async ( res.send(result); }; +export const getJobPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: jobModel, + property, + }); + res.send(result); +}; + export const searchJobsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: jobModel, diff --git a/src/services/production/printerprofiles.js b/src/services/production/printerprofiles.js index ee0c81f..892c480 100644 --- a/src/services/production/printerprofiles.js +++ b/src/services/production/printerprofiles.js @@ -10,6 +10,7 @@ import { listObjectsByProperties, newObject, searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('PrinterProfiles'); @@ -111,6 +112,14 @@ export const listPrinterProfilesByPropertiesRouteHandler = async ( res.send(result); }; +export const getPrinterProfilePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: printerProfileModel, + property, + }); + res.send(result); +}; + export const searchPrinterProfilesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: printerProfileModel, diff --git a/src/services/production/printers.js b/src/services/production/printers.js index 3add9f0..d890e73 100644 --- a/src/services/production/printers.js +++ b/src/services/production/printers.js @@ -11,6 +11,7 @@ import { getModelStats, getModelHistory, searchObjects, + getPropertyValues, } from '../../database/database.js'; import mongoose from 'mongoose'; @@ -75,6 +76,14 @@ export const listPrintersByPropertiesRouteHandler = async ( res.send(result); }; +export const getPrinterPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: printerModel, + property, + }); + res.send(result); +}; + export const searchPrintersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: printerModel, diff --git a/src/services/production/subjobs.js b/src/services/production/subjobs.js index 93deb8c..c1c04b5 100644 --- a/src/services/production/subjobs.js +++ b/src/services/production/subjobs.js @@ -7,7 +7,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Sub Jobs'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listSubJobsByPropertiesRouteHandler = async ( res.send(result); }; +export const getSubJobPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: subJobModel, + property, + }); + res.send(result); +}; + export const searchSubJobsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: subJobModel, diff --git a/src/services/sales/clients.js b/src/services/sales/clients.js index d96a3ac..74fda09 100644 --- a/src/services/sales/clients.js +++ b/src/services/sales/clients.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; const logger = log4js.getLogger('Clients'); logger.level = config.server.logLevel; @@ -72,6 +73,14 @@ export const listClientsByPropertiesRouteHandler = async ( res.send(result); }; +export const getClientPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: clientModel, + property, + }); + res.send(result); +}; + export const searchClientsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: clientModel, diff --git a/src/services/sales/listings.js b/src/services/sales/listings.js index d9b6c7a..94d7367 100644 --- a/src/services/sales/listings.js +++ b/src/services/sales/listings.js @@ -15,6 +15,7 @@ import { getModelHistory, checkStates, searchObjects, + getPropertyValues, } from '../../database/database.js'; import { hasIntegration, @@ -114,6 +115,14 @@ export const listListingsByPropertiesRouteHandler = async ( res.send(result); }; +export const getListingPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: listingModel, + property, + }); + res.send(result); +}; + export const searchListingsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: listingModel, diff --git a/src/services/sales/listingvarients.js b/src/services/sales/listingvarients.js index dd2c3fb..8dcedcd 100644 --- a/src/services/sales/listingvarients.js +++ b/src/services/sales/listingvarients.js @@ -13,6 +13,7 @@ import { getModelHistory, checkStates, searchObjects, + getPropertyValues, } from '../../database/database.js'; import { listingModel } from '../../database/schemas/sales/listing.schema.js'; import { @@ -84,6 +85,14 @@ export const listListingVarientsByPropertiesRouteHandler = async ( res.send(result); }; +export const getListingVarientPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: listingVarientModel, + property, + }); + res.send(result); +}; + export const searchListingVarientsRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: listingVarientModel, diff --git a/src/services/sales/marketplaces.js b/src/services/sales/marketplaces.js index 0edec17..df1430e 100644 --- a/src/services/sales/marketplaces.js +++ b/src/services/sales/marketplaces.js @@ -11,7 +11,8 @@ import { listObjectsByProperties, getModelStats, getModelHistory, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; import * as marketplaceIntegration from '../../integrations/marketplaceworker.js'; const logger = log4js.getLogger('Marketplaces'); @@ -73,6 +74,14 @@ export const listMarketplacesByPropertiesRouteHandler = async ( res.send(result); }; +export const getMarketplacePropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: marketplaceModel, + property, + }); + res.send(result); +}; + export const searchMarketplacesRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: marketplaceModel, diff --git a/src/services/sales/salesorders.js b/src/services/sales/salesorders.js index 4be0760..943ed1b 100644 --- a/src/services/sales/salesorders.js +++ b/src/services/sales/salesorders.js @@ -13,7 +13,8 @@ import { getModelStats, getModelHistory, checkStates, - searchObjects + searchObjects, + getPropertyValues, } from '../../database/database.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; @@ -79,6 +80,14 @@ export const listSalesOrdersByPropertiesRouteHandler = async ( res.send(result); }; +export const getSalesOrderPropertyValuesRouteHandler = async (req, res, property) => { + const result = await getPropertyValues({ + model: salesOrderModel, + property, + }); + res.send(result); +}; + export const searchSalesOrdersRouteHandler = async (req, res, search) => { const result = await searchObjects({ model: salesOrderModel,