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);
};
export const getPropertyValues = async ({ model, property }) => {
if (!property) {
return [];
}
return await model.distinct(property);
};
// Helper to build nested structure for listObjectsByProperty
function nestGroups(groups, props, filter, idx = 0) {
if (idx >= props.length) return groups;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -74,6 +74,14 @@ export const listJobsByPropertiesRouteHandler = async (
res.send(result);
};
export const getJobPropertyValuesRouteHandler = async (req, res, property) => {
const result = await getPropertyValues({
model: jobModel,
property,
});
res.send(result);
};
export const searchJobsRouteHandler = async (req, res, search) => {
const result = await searchObjects({
model: jobModel,

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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