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,