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.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit

This commit is contained in:
Tom Butcher 2026-07-24 23:19:48 +01:00
parent 3dd80b7790
commit 287e74b682
91 changed files with 742 additions and 61 deletions

View File

@ -467,6 +467,13 @@ export const listPropertyValues = async ({ model, property, filter = {}, search
return await model.aggregate(aggregateCommand); 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 // Helper to build nested structure for listObjectsByProperty
function nestGroups(groups, props, filter, idx = 0) { function nestGroups(groups, props, filter, idx = 0) {
if (idx >= props.length) return groups; if (idx >= props.length) return groups;

View File

@ -16,7 +16,8 @@ import {
acknowledgeInvoiceRouteHandler, acknowledgeInvoiceRouteHandler,
cancelInvoiceRouteHandler, cancelInvoiceRouteHandler,
postInvoiceRouteHandler, postInvoiceRouteHandler,
searchInvoicesRouteHandler searchInvoicesRouteHandler,
getInvoicePropertyValuesRouteHandler
} from '../../services/finance/invoices.js'; } from '../../services/finance/invoices.js';
// list of invoices // list of invoices
@ -55,6 +56,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchInvoicesRouteHandler(req, res, search); searchInvoicesRouteHandler(req, res, search);

View File

@ -17,7 +17,8 @@ import {
authorisePaymentRouteHandler, authorisePaymentRouteHandler,
declinePaymentRouteHandler, declinePaymentRouteHandler,
cancelPaymentRouteHandler, cancelPaymentRouteHandler,
searchPaymentsRouteHandler searchPaymentsRouteHandler,
getPaymentPropertyValuesRouteHandler
} from '../../services/finance/payments.js'; } from '../../services/finance/payments.js';
// list of payments // list of payments
@ -55,6 +56,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPaymentsRouteHandler(req, res, search); searchPaymentsRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listTaxRecordsByPropertiesRouteHandler, listTaxRecordsByPropertiesRouteHandler,
getTaxRecordStatsRouteHandler, getTaxRecordStatsRouteHandler,
getTaxRecordHistoryRouteHandler, getTaxRecordHistoryRouteHandler,
searchTaxRecordsRouteHandler searchTaxRecordsRouteHandler,
getTaxRecordPropertyValuesRouteHandler
} from '../../services/finance/taxrecords.js'; } from '../../services/finance/taxrecords.js';
// list of tax records // list of tax records
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchTaxRecordsRouteHandler(req, res, search); searchTaxRecordsRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
listFilamentStocksByPropertiesRouteHandler, listFilamentStocksByPropertiesRouteHandler,
getFilamentStockStatsRouteHandler, getFilamentStockStatsRouteHandler,
getFilamentStockHistoryRouteHandler, getFilamentStockHistoryRouteHandler,
searchFilamentStocksRouteHandler searchFilamentStocksRouteHandler,
getFilamentStockPropertyValuesRouteHandler
} from '../../services/inventory/filamentstocks.js'; } from '../../services/inventory/filamentstocks.js';
// list of filament stocks // list of filament stocks
@ -50,6 +51,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchFilamentStocksRouteHandler(req, res, search); searchFilamentStocksRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
listOrderItemsByPropertiesRouteHandler, listOrderItemsByPropertiesRouteHandler,
getOrderItemStatsRouteHandler, getOrderItemStatsRouteHandler,
getOrderItemHistoryRouteHandler, getOrderItemHistoryRouteHandler,
searchOrderItemsRouteHandler searchOrderItemsRouteHandler,
getOrderItemPropertyValuesRouteHandler
} from '../../services/inventory/orderitems.js'; } from '../../services/inventory/orderitems.js';
// list of order items // list of order items
@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchOrderItemsRouteHandler(req, res, search); searchOrderItemsRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
listPartStocksByPropertiesRouteHandler, listPartStocksByPropertiesRouteHandler,
getPartStockStatsRouteHandler, getPartStockStatsRouteHandler,
getPartStockHistoryRouteHandler, getPartStockHistoryRouteHandler,
searchPartStocksRouteHandler searchPartStocksRouteHandler,
getPartStockPropertyValuesRouteHandler
} from '../../services/inventory/partstocks.js'; } from '../../services/inventory/partstocks.js';
// list of part stocks // list of part stocks
@ -42,6 +43,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPartStocksRouteHandler(req, res, search); searchPartStocksRouteHandler(req, res, search);

View File

@ -14,7 +14,8 @@ import {
listProductStocksByPropertiesRouteHandler, listProductStocksByPropertiesRouteHandler,
getProductStockStatsRouteHandler, getProductStockStatsRouteHandler,
getProductStockHistoryRouteHandler, getProductStockHistoryRouteHandler,
searchProductStocksRouteHandler searchProductStocksRouteHandler,
getProductStockPropertyValuesRouteHandler
} from '../../services/inventory/productstocks.js'; } from '../../services/inventory/productstocks.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -41,6 +42,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchProductStocksRouteHandler(req, res, search); searchProductStocksRouteHandler(req, res, search);

View File

@ -16,7 +16,8 @@ import {
postPurchaseOrderRouteHandler, postPurchaseOrderRouteHandler,
acknowledgePurchaseOrderRouteHandler, acknowledgePurchaseOrderRouteHandler,
cancelPurchaseOrderRouteHandler, cancelPurchaseOrderRouteHandler,
searchPurchaseOrdersRouteHandler searchPurchaseOrdersRouteHandler,
getPurchaseOrderPropertyValuesRouteHandler
} from '../../services/inventory/purchaseorders.js'; } from '../../services/inventory/purchaseorders.js';
// list of purchase orders // list of purchase orders
@ -59,6 +60,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPurchaseOrdersRouteHandler(req, res, search); searchPurchaseOrdersRouteHandler(req, res, search);

View File

@ -16,7 +16,8 @@ import {
shipShipmentRouteHandler, shipShipmentRouteHandler,
receiveShipmentRouteHandler, receiveShipmentRouteHandler,
cancelShipmentRouteHandler, cancelShipmentRouteHandler,
searchShipmentsRouteHandler searchShipmentsRouteHandler,
getShipmentPropertyValuesRouteHandler
} from '../../services/inventory/shipments.js'; } from '../../services/inventory/shipments.js';
// list of shipments // list of shipments
@ -44,6 +45,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchShipmentsRouteHandler(req, res, search); searchShipmentsRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
listStockEventsByPropertiesRouteHandler, listStockEventsByPropertiesRouteHandler,
getStockEventStatsRouteHandler, getStockEventStatsRouteHandler,
getStockEventHistoryRouteHandler, getStockEventHistoryRouteHandler,
searchStockEventsRouteHandler searchStockEventsRouteHandler,
getStockEventPropertyValuesRouteHandler
} from '../../services/inventory/stockevents.js'; } from '../../services/inventory/stockevents.js';
// list of stock events // list of stock events
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchStockEventsRouteHandler(req, res, search); searchStockEventsRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
listStockLocationsByPropertiesRouteHandler, listStockLocationsByPropertiesRouteHandler,
getStockLocationStatsRouteHandler, getStockLocationStatsRouteHandler,
getStockLocationHistoryRouteHandler, getStockLocationHistoryRouteHandler,
searchStockLocationsRouteHandler searchStockLocationsRouteHandler,
getStockLocationPropertyValuesRouteHandler
} from '../../services/inventory/stocklocations.js'; } from '../../services/inventory/stocklocations.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchStockLocationsRouteHandler(req, res, search); searchStockLocationsRouteHandler(req, res, search);

View File

@ -14,7 +14,8 @@ import {
listStockTransfersByPropertiesRouteHandler, listStockTransfersByPropertiesRouteHandler,
getStockTransferStatsRouteHandler, getStockTransferStatsRouteHandler,
getStockTransferHistoryRouteHandler, getStockTransferHistoryRouteHandler,
searchStockTransfersRouteHandler searchStockTransfersRouteHandler,
getStockTransferPropertyValuesRouteHandler
} from '../../services/inventory/stocktransfers.js'; } from '../../services/inventory/stocktransfers.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchStockTransfersRouteHandler(req, res, search); searchStockTransfersRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
getAppPasswordStatsRouteHandler, getAppPasswordStatsRouteHandler,
getAppPasswordHistoryRouteHandler, getAppPasswordHistoryRouteHandler,
regenerateSecretRouteHandler, regenerateSecretRouteHandler,
searchAppPasswordsRouteHandler searchAppPasswordsRouteHandler,
getAppPasswordPropertyValuesRouteHandler,
} from '../../services/management/apppasswords.js'; } from '../../services/management/apppasswords.js';
router.get('/', isAuthenticated, (req, res) => { 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) : {}; const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {};
listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchAppPasswordsRouteHandler(req, res, search); searchAppPasswordsRouteHandler(req, res, search);
}); });
router.post('/', isAuthenticated, (req, res) => { router.post('/', isAuthenticated, (req, res) => {
newAppPasswordRouteHandler(req, res); newAppPasswordRouteHandler(req, res);
}); });

View File

@ -13,6 +13,7 @@ import {
getCourierStatsRouteHandler, getCourierStatsRouteHandler,
getCourierHistoryRouteHandler, getCourierHistoryRouteHandler,
searchCouriersRouteHandler, searchCouriersRouteHandler,
getCourierPropertyValuesRouteHandler,
} from '../../services/management/courier.js'; } from '../../services/management/courier.js';
// list of couriers // list of couriers
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchCouriersRouteHandler(req, res, search); searchCouriersRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getCourierServiceStatsRouteHandler, getCourierServiceStatsRouteHandler,
getCourierServiceHistoryRouteHandler, getCourierServiceHistoryRouteHandler,
searchCourierServicesRouteHandler, searchCourierServicesRouteHandler,
getCourierServicePropertyValuesRouteHandler,
} from '../../services/management/courierservice.js'; } from '../../services/management/courierservice.js';
// list of courier services // list of courier services
@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchCourierServicesRouteHandler(req, res, search); searchCourierServicesRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getDocumentJobStatsRouteHandler, getDocumentJobStatsRouteHandler,
getDocumentJobHistoryRouteHandler, getDocumentJobHistoryRouteHandler,
searchDocumentJobsRouteHandler, searchDocumentJobsRouteHandler,
getDocumentJobPropertyValuesRouteHandler,
} from '../../services/management/documentjobs.js'; } from '../../services/management/documentjobs.js';
// list of document jobs // list of document jobs
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchDocumentJobsRouteHandler(req, res, search); searchDocumentJobsRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getDocumentPrinterStatsRouteHandler, getDocumentPrinterStatsRouteHandler,
getDocumentPrinterHistoryRouteHandler, getDocumentPrinterHistoryRouteHandler,
searchDocumentPrintersRouteHandler, searchDocumentPrintersRouteHandler,
getDocumentPrinterPropertyValuesRouteHandler,
} from '../../services/management/documentprinters.js'; } from '../../services/management/documentprinters.js';
// list of document printers // list of document printers
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchDocumentPrintersRouteHandler(req, res, search); searchDocumentPrintersRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getDocumentSizeStatsRouteHandler, getDocumentSizeStatsRouteHandler,
getDocumentSizeHistoryRouteHandler, getDocumentSizeHistoryRouteHandler,
searchDocumentSizesRouteHandler, searchDocumentSizesRouteHandler,
getDocumentSizePropertyValuesRouteHandler,
} from '../../services/management/documentsizes.js'; } from '../../services/management/documentsizes.js';
// list of document sizes // list of document sizes
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchDocumentSizesRouteHandler(req, res, search); searchDocumentSizesRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listDocumentTemplatesByPropertiesRouteHandler, listDocumentTemplatesByPropertiesRouteHandler,
getDocumentTemplateStatsRouteHandler, getDocumentTemplateStatsRouteHandler,
getDocumentTemplateHistoryRouteHandler, getDocumentTemplateHistoryRouteHandler,
searchDocumentTemplatesRouteHandler getDocumentTemplatePropertyValuesRouteHandler,
searchDocumentTemplatesRouteHandler,
} from '../../services/management/documenttemplates.js'; } from '../../services/management/documenttemplates.js';
// list of document templates // list of document templates
@ -33,12 +34,17 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchDocumentTemplatesRouteHandler(req, res, search); searchDocumentTemplatesRouteHandler(req, res, search);
}); });
router.post('/', isAuthenticated, (req, res) => { router.post('/', isAuthenticated, (req, res) => {
newDocumentTemplateRouteHandler(req, res); newDocumentTemplateRouteHandler(req, res);
}); });

View File

@ -14,6 +14,7 @@ import {
getFilamentStatsRouteHandler, getFilamentStatsRouteHandler,
getFilamentHistoryRouteHandler, getFilamentHistoryRouteHandler,
searchFilamentsRouteHandler, searchFilamentsRouteHandler,
getFilamentPropertyValuesRouteHandler,
} from '../../services/management/filaments.js'; } from '../../services/management/filaments.js';
// list of filaments // list of filaments
@ -46,6 +47,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchFilamentsRouteHandler(req, res, search); searchFilamentsRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listFilamentSkusByPropertiesRouteHandler, listFilamentSkusByPropertiesRouteHandler,
getFilamentSkuStatsRouteHandler, getFilamentSkuStatsRouteHandler,
getFilamentSkuHistoryRouteHandler, getFilamentSkuHistoryRouteHandler,
searchFilamentSkusRouteHandler searchFilamentSkusRouteHandler,
getFilamentSkuPropertyValuesRouteHandler
} from '../../services/management/filamentskus.js'; } from '../../services/management/filamentskus.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchFilamentSkusRouteHandler(req, res, search); searchFilamentSkusRouteHandler(req, res, search);

View File

@ -15,6 +15,7 @@ import {
getFileStatsRouteHandler, getFileStatsRouteHandler,
getFileHistoryRouteHandler, getFileHistoryRouteHandler,
searchFilesRouteHandler, searchFilesRouteHandler,
getFilePropertyValuesRouteHandler,
} from '../../services/management/files.js'; } from '../../services/management/files.js';
// list of files // list of files
@ -36,6 +37,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchFilesRouteHandler(req, res, search); searchFilesRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getHostStatsRouteHandler, getHostStatsRouteHandler,
getHostHistoryRouteHandler, getHostHistoryRouteHandler,
searchHostsRouteHandler, searchHostsRouteHandler,
getHostPropertyValuesRouteHandler,
} from '../../services/management/hosts.js'; } from '../../services/management/hosts.js';
// list of hosts // list of hosts
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchHostsRouteHandler(req, res, search); searchHostsRouteHandler(req, res, search);

View File

@ -12,6 +12,7 @@ import {
getMaterialStatsRouteHandler, getMaterialStatsRouteHandler,
getMaterialHistoryRouteHandler, getMaterialHistoryRouteHandler,
searchMaterialsRouteHandler, searchMaterialsRouteHandler,
getMaterialPropertyValuesRouteHandler,
} from '../../services/management/materials.js'; } from '../../services/management/materials.js';
// list of materials // list of materials
@ -42,6 +43,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchMaterialsRouteHandler(req, res, search); searchMaterialsRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listNoteTypesByPropertiesRouteHandler, listNoteTypesByPropertiesRouteHandler,
getNoteTypeStatsRouteHandler, getNoteTypeStatsRouteHandler,
getNoteTypeHistoryRouteHandler, getNoteTypeHistoryRouteHandler,
searchNoteTypesRouteHandler searchNoteTypesRouteHandler,
getNoteTypePropertyValuesRouteHandler
} from '../../services/management/notetypes.js'; } from '../../services/management/notetypes.js';
// list of note types // list of note types
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchNoteTypesRouteHandler(req, res, search); searchNoteTypesRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getPartStatsRouteHandler, getPartStatsRouteHandler,
getPartHistoryRouteHandler, getPartHistoryRouteHandler,
searchPartsRouteHandler, searchPartsRouteHandler,
getPartPropertyValuesRouteHandler,
} from '../../services/management/parts.js'; } from '../../services/management/parts.js';
// list of parts // list of parts
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPartsRouteHandler(req, res, search); searchPartsRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listPartSkusByPropertiesRouteHandler, listPartSkusByPropertiesRouteHandler,
getPartSkuStatsRouteHandler, getPartSkuStatsRouteHandler,
getPartSkuHistoryRouteHandler, getPartSkuHistoryRouteHandler,
searchPartSkusRouteHandler searchPartSkusRouteHandler,
getPartSkuPropertyValuesRouteHandler
} from '../../services/management/partskus.js'; } from '../../services/management/partskus.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPartSkusRouteHandler(req, res, search); searchPartSkusRouteHandler(req, res, search);

View File

@ -11,6 +11,7 @@ import {
listProductCategoriesRouteHandler, listProductCategoriesRouteHandler,
newProductCategoryRouteHandler, newProductCategoryRouteHandler,
searchProductCategoriesRouteHandler, searchProductCategoriesRouteHandler,
getProductCategoryPropertyValuesRouteHandler,
} from '../../services/management/productcategories.js'; } from '../../services/management/productcategories.js';
const router = express.Router(); const router = express.Router();
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchProductCategoriesRouteHandler(req, res, search); searchProductCategoriesRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getProductStatsRouteHandler, getProductStatsRouteHandler,
getProductHistoryRouteHandler, getProductHistoryRouteHandler,
searchProductsRouteHandler, searchProductsRouteHandler,
getProductPropertyValuesRouteHandler,
} from '../../services/management/products.js'; } from '../../services/management/products.js';
// list of products // list of products
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchProductsRouteHandler(req, res, search); searchProductsRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listProductSkusByPropertiesRouteHandler, listProductSkusByPropertiesRouteHandler,
getProductSkuStatsRouteHandler, getProductSkuStatsRouteHandler,
getProductSkuHistoryRouteHandler, getProductSkuHistoryRouteHandler,
searchProductSkusRouteHandler searchProductSkusRouteHandler,
getProductSkuPropertyValuesRouteHandler
} from '../../services/management/productskus.js'; } from '../../services/management/productskus.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchProductSkusRouteHandler(req, res, search); searchProductSkusRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getTaxRateStatsRouteHandler, getTaxRateStatsRouteHandler,
getTaxRateHistoryRouteHandler, getTaxRateHistoryRouteHandler,
searchTaxRatesRouteHandler, searchTaxRatesRouteHandler,
getTaxRatePropertyValuesRouteHandler,
} from '../../services/management/taxrates.js'; } from '../../services/management/taxrates.js';
// list of tax rates // list of tax rates
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchTaxRatesRouteHandler(req, res, search); searchTaxRatesRouteHandler(req, res, search);

View File

@ -11,7 +11,8 @@ import {
getUserStatsRouteHandler, getUserStatsRouteHandler,
getUserHistoryRouteHandler, getUserHistoryRouteHandler,
setAppPasswordRouteHandler, setAppPasswordRouteHandler,
searchUsersRouteHandler searchUsersRouteHandler,
getUserPropertyValuesRouteHandler
} from '../../services/management/users.js'; } from '../../services/management/users.js';
// list of document templates // list of document templates
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchUsersRouteHandler(req, res, search); searchUsersRouteHandler(req, res, search);

View File

@ -13,6 +13,7 @@ import {
getVendorStatsRouteHandler, getVendorStatsRouteHandler,
getVendorHistoryRouteHandler, getVendorHistoryRouteHandler,
searchVendorsRouteHandler, searchVendorsRouteHandler,
getVendorPropertyValuesRouteHandler,
} from '../../services/management/vendors.js'; } from '../../services/management/vendors.js';
// list of vendors // list of vendors
@ -34,6 +35,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchVendorsRouteHandler(req, res, search); searchVendorsRouteHandler(req, res, search);

View File

@ -9,6 +9,7 @@ import {
listNotesByPropertiesRouteHandler, listNotesByPropertiesRouteHandler,
getNoteStatsRouteHandler, getNoteStatsRouteHandler,
getNoteHistoryRouteHandler, getNoteHistoryRouteHandler,
getNotePropertyValuesRouteHandler,
} from '../../services/misc/notes.js'; } from '../../services/misc/notes.js';
import { getFilter, convertPropertiesString } from '../../utils.js'; import { getFilter, convertPropertiesString } from '../../utils.js';
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listNotesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); listNotesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
}); });
router.get('/values', isAuthenticated, (req, res) => {
const { property } = req.query;
getNotePropertyValuesRouteHandler(req, res, property);
});
// create new note // create new note
router.post('/', isAuthenticated, (req, res) => { router.post('/', isAuthenticated, (req, res) => {
newNoteRouteHandler(req, res); newNoteRouteHandler(req, res);

View File

@ -9,6 +9,7 @@ import {
listFilamentProfilesRouteHandler, listFilamentProfilesRouteHandler,
newFilamentProfileRouteHandler, newFilamentProfileRouteHandler,
searchFilamentProfilesRouteHandler, searchFilamentProfilesRouteHandler,
getFilamentProfilePropertyValuesRouteHandler,
} from '../../services/production/filamentprofiles.js'; } from '../../services/production/filamentprofiles.js';
const router = express.Router(); const router = express.Router();
@ -29,6 +30,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
searchFilamentProfilesRouteHandler(req, res, req.query.search); searchFilamentProfilesRouteHandler(req, res, req.query.search);
}); });

View File

@ -10,7 +10,8 @@ import {
listGCodeFilesByPropertiesRouteHandler, listGCodeFilesByPropertiesRouteHandler,
getGCodeFileContentRouteHandler, getGCodeFileContentRouteHandler,
getGCodeFileStatsRouteHandler, getGCodeFileStatsRouteHandler,
searchGCodeFilesRouteHandler searchGCodeFilesRouteHandler,
getGCodeFilePropertyValuesRouteHandler
} from '../../services/production/gcodefiles.js'; } from '../../services/production/gcodefiles.js';
import { convertPropertiesString, getFilter } from '../../utils.js'; import { convertPropertiesString, getFilter } from '../../utils.js';
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchGCodeFilesRouteHandler(req, res, search); searchGCodeFilesRouteHandler(req, res, search);

View File

@ -11,7 +11,8 @@ import {
editJobRouteHandler, editJobRouteHandler,
getJobStatsRouteHandler, getJobStatsRouteHandler,
getJobHistoryRouteHandler, getJobHistoryRouteHandler,
searchJobsRouteHandler searchJobsRouteHandler,
getJobPropertyValuesRouteHandler
} from '../../services/production/jobs.js'; } from '../../services/production/jobs.js';
import { convertPropertiesString, getFilter } from '../../utils.js'; import { convertPropertiesString, getFilter } from '../../utils.js';
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchJobsRouteHandler(req, res, search); searchJobsRouteHandler(req, res, search);

View File

@ -9,6 +9,7 @@ import {
listPrinterProfilesRouteHandler, listPrinterProfilesRouteHandler,
newPrinterProfileRouteHandler, newPrinterProfileRouteHandler,
searchPrinterProfilesRouteHandler, searchPrinterProfilesRouteHandler,
getPrinterProfilePropertyValuesRouteHandler,
} from '../../services/production/printerprofiles.js'; } from '../../services/production/printerprofiles.js';
const router = express.Router(); const router = express.Router();
@ -29,6 +30,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
searchPrinterProfilesRouteHandler(req, res, req.query.search); searchPrinterProfilesRouteHandler(req, res, req.query.search);
}); });

View File

@ -10,7 +10,8 @@ import {
getPrinterStatsRouteHandler, getPrinterStatsRouteHandler,
listPrintersByPropertiesRouteHandler, listPrintersByPropertiesRouteHandler,
getPrinterHistoryRouteHandler, getPrinterHistoryRouteHandler,
searchPrintersRouteHandler searchPrintersRouteHandler,
getPrinterPropertyValuesRouteHandler
} from '../../services/production/printers.js'; } from '../../services/production/printers.js';
import { convertPropertiesString, getFilter } from '../../utils.js'; import { convertPropertiesString, getFilter } from '../../utils.js';
@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchPrintersRouteHandler(req, res, search); searchPrintersRouteHandler(req, res, search);

View File

@ -8,7 +8,8 @@ import {
getSubJobRouteHandler, getSubJobRouteHandler,
getSubJobStatsRouteHandler, getSubJobStatsRouteHandler,
getSubJobHistoryRouteHandler, getSubJobHistoryRouteHandler,
searchSubJobsRouteHandler searchSubJobsRouteHandler,
getSubJobPropertyValuesRouteHandler
} from '../../services/production/subjobs.js'; } from '../../services/production/subjobs.js';
import { getFilter, convertPropertiesString } from '../../utils.js'; import { getFilter, convertPropertiesString } from '../../utils.js';
@ -30,6 +31,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchSubJobsRouteHandler(req, res, search); searchSubJobsRouteHandler(req, res, search);

View File

@ -12,7 +12,8 @@ import {
listClientsByPropertiesRouteHandler, listClientsByPropertiesRouteHandler,
getClientStatsRouteHandler, getClientStatsRouteHandler,
getClientHistoryRouteHandler, getClientHistoryRouteHandler,
searchClientsRouteHandler searchClientsRouteHandler,
getClientPropertyValuesRouteHandler
} from '../../services/sales/clients.js'; } from '../../services/sales/clients.js';
// list of clients // list of clients
@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchClientsRouteHandler(req, res, search); searchClientsRouteHandler(req, res, search);

View File

@ -15,6 +15,7 @@ import {
publishListingRouteHandler, publishListingRouteHandler,
unpublishListingRouteHandler, unpublishListingRouteHandler,
searchListingsRouteHandler, searchListingsRouteHandler,
getListingPropertyValuesRouteHandler,
} from '../../services/sales/listings.js'; } from '../../services/sales/listings.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchListingsRouteHandler(req, res, search); searchListingsRouteHandler(req, res, search);

View File

@ -14,7 +14,8 @@ import {
getListingVarientHistoryRouteHandler, getListingVarientHistoryRouteHandler,
publishListingVarientRouteHandler, publishListingVarientRouteHandler,
unpublishListingVarientRouteHandler, unpublishListingVarientRouteHandler,
searchListingVarientsRouteHandler searchListingVarientsRouteHandler,
getListingVarientPropertyValuesRouteHandler
} from '../../services/sales/listingvarients.js'; } from '../../services/sales/listingvarients.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -52,6 +53,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchListingVarientsRouteHandler(req, res, search); searchListingVarientsRouteHandler(req, res, search);

View File

@ -18,7 +18,8 @@ import {
syncMarketplaceItemsRouteHandler, syncMarketplaceItemsRouteHandler,
syncMarketplaceOrdersRouteHandler, syncMarketplaceOrdersRouteHandler,
marketplaceWebhookRouteHandler, marketplaceWebhookRouteHandler,
searchMarketplacesRouteHandler searchMarketplacesRouteHandler,
getMarketplacePropertyValuesRouteHandler
} from '../../services/sales/marketplaces.js'; } from '../../services/sales/marketplaces.js';
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {
@ -38,6 +39,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listMarketplacesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchMarketplacesRouteHandler(req, res, search); searchMarketplacesRouteHandler(req, res, search);

View File

@ -16,7 +16,8 @@ import {
postSalesOrderRouteHandler, postSalesOrderRouteHandler,
confirmSalesOrderRouteHandler, confirmSalesOrderRouteHandler,
cancelSalesOrderRouteHandler, cancelSalesOrderRouteHandler,
searchSalesOrdersRouteHandler searchSalesOrdersRouteHandler,
getSalesOrderPropertyValuesRouteHandler
} from '../../services/sales/salesorders.js'; } from '../../services/sales/salesorders.js';
// list of sales orders // list of sales orders
@ -37,6 +38,11 @@ router.get('/properties', isAuthenticated, (req, res) => {
} }
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); 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) => { router.get('/search', isAuthenticated, (req, res) => {
const { search } = req.query; const { search } = req.query;
searchSalesOrdersRouteHandler(req, res, search); searchSalesOrdersRouteHandler(req, res, search);

View File

@ -13,7 +13,8 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
@ -93,6 +94,14 @@ export const listInvoicesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchInvoicesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: invoiceModel, model: invoiceModel,

View File

@ -14,6 +14,7 @@ import {
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { invoiceModel } from '../../database/schemas/finance/invoice.schema.js'; import { invoiceModel } from '../../database/schemas/finance/invoice.schema.js';
@ -82,6 +83,14 @@ export const listPaymentsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPaymentsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: paymentModel, model: paymentModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('TaxRecords'); const logger = log4js.getLogger('TaxRecords');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listTaxRecordsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchTaxRecordsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: taxRecordModel, model: taxRecordModel,

View File

@ -12,7 +12,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Filament Stocks'); const logger = log4js.getLogger('Filament Stocks');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -79,6 +80,14 @@ export const listFilamentStocksByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchFilamentStocksRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: filamentStockModel, model: filamentStockModel,

View File

@ -13,7 +13,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Order Items'); const logger = log4js.getLogger('Order Items');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -171,6 +172,14 @@ export const listOrderItemsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchOrderItemsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: orderItemModel, model: orderItemModel,

View File

@ -12,7 +12,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Part Stocks'); const logger = log4js.getLogger('Part Stocks');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -75,6 +76,14 @@ export const listPartStocksByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPartStocksRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: partStockModel, model: partStockModel,

View File

@ -13,7 +13,8 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { productSkuModel } from '../../database/schemas/management/productsku.schema.js'; import { productSkuModel } from '../../database/schemas/management/productsku.schema.js';
const logger = log4js.getLogger('Product Stocks'); const logger = log4js.getLogger('Product Stocks');
@ -81,6 +82,14 @@ export const listProductStocksByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchProductStocksRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: productStockModel, model: productStockModel,

View File

@ -13,7 +13,8 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
@ -79,6 +80,14 @@ export const listPurchaseOrdersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPurchaseOrdersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: purchaseOrderModel, model: purchaseOrderModel,

View File

@ -13,7 +13,8 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Shipments'); const logger = log4js.getLogger('Shipments');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -77,6 +78,14 @@ export const listShipmentsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchShipmentsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: shipmentModel, model: shipmentModel,

View File

@ -12,7 +12,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Stock Events'); const logger = log4js.getLogger('Stock Events');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -77,6 +78,14 @@ export const listStockEventsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchStockEventsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: stockEventModel, model: stockEventModel,

View File

@ -12,7 +12,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Stock Locations'); const logger = log4js.getLogger('Stock Locations');
@ -74,6 +75,14 @@ export const listStockLocationsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchStockLocationsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: stockLocationModel, model: stockLocationModel,

View File

@ -18,7 +18,8 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Stock Transfers'); const logger = log4js.getLogger('Stock Transfers');
@ -306,6 +307,14 @@ export const listStockTransfersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchStockTransfersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: stockTransferModel, model: stockTransferModel,

View File

@ -13,7 +13,8 @@ import {
deleteObject, deleteObject,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('AppPasswords'); const logger = log4js.getLogger('AppPasswords');
@ -80,6 +81,14 @@ export const listAppPasswordsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchAppPasswordsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: appPasswordModel, model: appPasswordModel,

View File

@ -12,6 +12,7 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Couriers'); const logger = log4js.getLogger('Couriers');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listCouriersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchCouriersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: courierModel, model: courierModel,

View File

@ -12,6 +12,7 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('CourierServices'); const logger = log4js.getLogger('CourierServices');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -74,6 +75,14 @@ export const listCourierServicesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchCourierServicesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: courierServiceModel, model: courierServiceModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Document Jobs'); const logger = log4js.getLogger('Document Jobs');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listDocumentJobsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchDocumentJobsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: documentJobModel, model: documentJobModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Document Templates'); const logger = log4js.getLogger('Document Templates');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -76,6 +77,14 @@ export const listDocumentPrintersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchDocumentPrintersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: documentPrinterModel, model: documentPrinterModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Document Sizes'); const logger = log4js.getLogger('Document Sizes');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listDocumentSizesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchDocumentSizesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: documentSizeModel, model: documentSizeModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Document Templates'); const logger = log4js.getLogger('Document Templates');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -80,6 +81,14 @@ export const listDocumentTemplatesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchDocumentTemplatesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: documentTemplateModel, model: documentTemplateModel,

View File

@ -12,7 +12,8 @@ import {
deleteObject, deleteObject,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Filaments'); const logger = log4js.getLogger('Filaments');
@ -76,6 +77,14 @@ export const listFilamentsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchFilamentsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: filamentModel, model: filamentModel,

View File

@ -12,6 +12,7 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Filament SKUs'); const logger = log4js.getLogger('Filament SKUs');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -74,6 +75,14 @@ export const listFilamentSkusByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchFilamentSkusRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: filamentSkuModel, model: filamentSkuModel,

View File

@ -16,6 +16,7 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { import {
uploadFile, uploadFile,
@ -107,6 +108,14 @@ export const listFilesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchFilesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: fileModel, model: fileModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Hosts'); const logger = log4js.getLogger('Hosts');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listHostsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchHostsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: hostModel, model: hostModel,

View File

@ -11,6 +11,7 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Materials'); const logger = log4js.getLogger('Materials');
@ -74,6 +75,14 @@ export const listMaterialsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchMaterialsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: materialModel, model: materialModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Note Types'); const logger = log4js.getLogger('Note Types');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listNoteTypesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchNoteTypesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: noteTypeModel, model: noteTypeModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Parts'); const logger = log4js.getLogger('Parts');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -74,6 +75,14 @@ export const listPartsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPartsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: partModel, model: partModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Part SKUs'); const logger = log4js.getLogger('Part SKUs');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -80,6 +81,14 @@ export const listPartSkusByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPartSkusRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: partSkuModel, model: partSkuModel,

View File

@ -11,7 +11,8 @@ import {
listObjects, listObjects,
listObjectsByProperties, listObjectsByProperties,
newObject, newObject,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('ProductCategories'); const logger = log4js.getLogger('ProductCategories');
@ -75,6 +76,14 @@ export const listProductCategoriesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchProductCategoriesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: productCategoryModel, model: productCategoryModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Products'); const logger = log4js.getLogger('Products');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -74,6 +75,14 @@ export const listProductsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchProductsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: productModel, model: productModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Product SKUs'); const logger = log4js.getLogger('Product SKUs');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -83,6 +84,14 @@ export const listProductSkusByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchProductSkusRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: productSkuModel, model: productSkuModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('TaxRates'); const logger = log4js.getLogger('TaxRates');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listTaxRatesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchTaxRatesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: taxRateModel, model: taxRateModel,

View File

@ -11,7 +11,8 @@ import {
editObject, editObject,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Users'); const logger = log4js.getLogger('Users');
@ -73,6 +74,14 @@ export const listUsersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchUsersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: userModel, model: userModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Vendors'); const logger = log4js.getLogger('Vendors');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listVendorsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchVendorsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: vendorModel, model: vendorModel,

View File

@ -11,6 +11,7 @@ import {
recursivelyDeleteChildObjects, recursivelyDeleteChildObjects,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import mongoose from 'mongoose'; import mongoose from 'mongoose';
import { newNoteNotification } from '../../utils.js'; import { newNoteNotification } from '../../utils.js';
@ -76,6 +77,14 @@ export const listNotesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const getNoteRouteHandler = async (req, res) => {
const id = req.params.id; const id = req.params.id;
const result = await getObject({ const result = await getObject({

View File

@ -10,6 +10,7 @@ import {
listObjectsByProperties, listObjectsByProperties,
newObject, newObject,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('FilamentProfiles'); const logger = log4js.getLogger('FilamentProfiles');
@ -223,6 +224,14 @@ export const listFilamentProfilesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchFilamentProfilesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: filamentProfileModel, model: filamentProfileModel,

View File

@ -8,7 +8,8 @@ import {
listObjects, listObjects,
listObjectsByProperties, listObjectsByProperties,
newObject, newObject,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { getFileContentRouteHandler } from '../management/files.js'; import { getFileContentRouteHandler } from '../management/files.js';
import mongoose from 'mongoose'; import mongoose from 'mongoose';
@ -74,6 +75,14 @@ export const listGCodeFilesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchGCodeFilesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: gcodeFileModel, model: gcodeFileModel,

View File

@ -74,6 +74,14 @@ export const listJobsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchJobsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: jobModel, model: jobModel,

View File

@ -10,6 +10,7 @@ import {
listObjectsByProperties, listObjectsByProperties,
newObject, newObject,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('PrinterProfiles'); const logger = log4js.getLogger('PrinterProfiles');
@ -111,6 +112,14 @@ export const listPrinterProfilesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPrinterProfilesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: printerProfileModel, model: printerProfileModel,

View File

@ -11,6 +11,7 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import mongoose from 'mongoose'; import mongoose from 'mongoose';
@ -75,6 +76,14 @@ export const listPrintersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchPrintersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: printerModel, model: printerModel,

View File

@ -7,7 +7,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Sub Jobs'); const logger = log4js.getLogger('Sub Jobs');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -69,6 +70,14 @@ export const listSubJobsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchSubJobsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: subJobModel, model: subJobModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
const logger = log4js.getLogger('Clients'); const logger = log4js.getLogger('Clients');
logger.level = config.server.logLevel; logger.level = config.server.logLevel;
@ -72,6 +73,14 @@ export const listClientsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchClientsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: clientModel, model: clientModel,

View File

@ -15,6 +15,7 @@ import {
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { import {
hasIntegration, hasIntegration,
@ -114,6 +115,14 @@ export const listListingsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchListingsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: listingModel, model: listingModel,

View File

@ -13,6 +13,7 @@ import {
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects, searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { listingModel } from '../../database/schemas/sales/listing.schema.js'; import { listingModel } from '../../database/schemas/sales/listing.schema.js';
import { import {
@ -84,6 +85,14 @@ export const listListingVarientsByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchListingVarientsRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: listingVarientModel, model: listingVarientModel,

View File

@ -11,7 +11,8 @@ import {
listObjectsByProperties, listObjectsByProperties,
getModelStats, getModelStats,
getModelHistory, getModelHistory,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import * as marketplaceIntegration from '../../integrations/marketplaceworker.js'; import * as marketplaceIntegration from '../../integrations/marketplaceworker.js';
const logger = log4js.getLogger('Marketplaces'); const logger = log4js.getLogger('Marketplaces');
@ -73,6 +74,14 @@ export const listMarketplacesByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchMarketplacesRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: marketplaceModel, model: marketplaceModel,

View File

@ -13,7 +13,8 @@ import {
getModelStats, getModelStats,
getModelHistory, getModelHistory,
checkStates, checkStates,
searchObjects searchObjects,
getPropertyValues,
} from '../../database/database.js'; } from '../../database/database.js';
import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js';
import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js';
@ -79,6 +80,14 @@ export const listSalesOrdersByPropertiesRouteHandler = async (
res.send(result); 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) => { export const searchSalesOrdersRouteHandler = async (req, res, search) => {
const result = await searchObjects({ const result = await searchObjects({
model: salesOrderModel, model: salesOrderModel,