diff --git a/src/database/schemas/finance/invoice.schema.js b/src/database/schemas/finance/invoice.schema.js index ed7e475..3b7bffe 100644 --- a/src/database/schemas/finance/invoice.schema.js +++ b/src/database/schemas/finance/invoice.schema.js @@ -54,6 +54,8 @@ const invoiceSchema = new Schema( { timestamps: true } ); +invoiceSchema.index({ orderType: 'text', fromType: 'text', toType: 'text' }); + const rollupConfigs = [ { name: 'draft', diff --git a/src/database/schemas/finance/payment.schema.js b/src/database/schemas/finance/payment.schema.js index 4c35a28..bfd5568 100644 --- a/src/database/schemas/finance/payment.schema.js +++ b/src/database/schemas/finance/payment.schema.js @@ -24,6 +24,8 @@ const paymentSchema = new Schema( { timestamps: true } ); +paymentSchema.index({ paymentMethod: 'text', notes: 'text' }); + const rollupConfigs = [ { name: 'draft', diff --git a/src/database/schemas/finance/taxrecord.schema.js b/src/database/schemas/finance/taxrecord.schema.js index 3680196..278bcaa 100644 --- a/src/database/schemas/finance/taxrecord.schema.js +++ b/src/database/schemas/finance/taxrecord.schema.js @@ -19,6 +19,8 @@ const taxRecordSchema = new Schema( { timestamps: true } ); +taxRecordSchema.index({ transactionType: 'text' }); + taxRecordSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/inventory/filamentstock.schema.js b/src/database/schemas/inventory/filamentstock.schema.js index 7a3abca..c5d4dda 100644 --- a/src/database/schemas/inventory/filamentstock.schema.js +++ b/src/database/schemas/inventory/filamentstock.schema.js @@ -49,6 +49,8 @@ const filamentStockSchema = new Schema( { timestamps: true } ); +filamentStockSchema.index({ 'state.type': 'text' }); + filamentStockSchema.pre('validate', async function () { if (!this.filament && this.filamentSku) { const sku = await mongoose diff --git a/src/database/schemas/inventory/orderitem.schema.js b/src/database/schemas/inventory/orderitem.schema.js index f0e8ea1..2a45017 100644 --- a/src/database/schemas/inventory/orderitem.schema.js +++ b/src/database/schemas/inventory/orderitem.schema.js @@ -69,6 +69,8 @@ const orderItemSchema = new Schema( { timestamps: true } ); +orderItemSchema.index({ name: 'text', itemType: 'text', orderType: 'text' }); + const rollupConfigs = [ { name: 'shipped', diff --git a/src/database/schemas/inventory/partstock.schema.js b/src/database/schemas/inventory/partstock.schema.js index a57a3f9..1f4baba 100644 --- a/src/database/schemas/inventory/partstock.schema.js +++ b/src/database/schemas/inventory/partstock.schema.js @@ -43,6 +43,8 @@ const partStockSchema = new Schema( { timestamps: true } ); +partStockSchema.index({ sourceType: 'text', 'state.type': 'text' }); + const rollupConfigs = [ { name: 'totalCurrentQuantity', diff --git a/src/database/schemas/inventory/productstock.schema.js b/src/database/schemas/inventory/productstock.schema.js index d0722d1..f9741a1 100644 --- a/src/database/schemas/inventory/productstock.schema.js +++ b/src/database/schemas/inventory/productstock.schema.js @@ -49,6 +49,8 @@ const productStockSchema = new Schema( { timestamps: true } ); +productStockSchema.index({ 'state.type': 'text' }); + const rollupConfigs = [ { name: 'totalCurrentQuantity', diff --git a/src/database/schemas/inventory/purchaseorder.schema.js b/src/database/schemas/inventory/purchaseorder.schema.js index a7ee7cc..9873c99 100644 --- a/src/database/schemas/inventory/purchaseorder.schema.js +++ b/src/database/schemas/inventory/purchaseorder.schema.js @@ -25,6 +25,8 @@ const purchaseOrderSchema = new Schema( { timestamps: true } ); +purchaseOrderSchema.index({ 'state.type': 'text' }); + const rollupConfigs = [ { name: 'draft', diff --git a/src/database/schemas/inventory/shipment.schema.js b/src/database/schemas/inventory/shipment.schema.js index 1391501..7a889b0 100644 --- a/src/database/schemas/inventory/shipment.schema.js +++ b/src/database/schemas/inventory/shipment.schema.js @@ -34,6 +34,8 @@ const shipmentSchema = new Schema( { timestamps: true } ); +shipmentSchema.index({ trackingNumber: 'text', orderType: 'text' }); + shipmentSchema.statics.recalculate = async function (shipment, user) { if (shipment.orderType !== 'purchaseOrder' && shipment.orderType !== 'salesOrder') { return; diff --git a/src/database/schemas/inventory/stockaudit.schema.js b/src/database/schemas/inventory/stockaudit.schema.js index 75ad18e..24cba7b 100644 --- a/src/database/schemas/inventory/stockaudit.schema.js +++ b/src/database/schemas/inventory/stockaudit.schema.js @@ -28,6 +28,8 @@ const stockAuditSchema = new Schema( { timestamps: true } ); +stockAuditSchema.index({ type: 'text', status: 'text', notes: 'text' }); + // Add virtual id getter stockAuditSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/inventory/stockevent.schema.js b/src/database/schemas/inventory/stockevent.schema.js index cc0bd31..48c5e2d 100644 --- a/src/database/schemas/inventory/stockevent.schema.js +++ b/src/database/schemas/inventory/stockevent.schema.js @@ -32,6 +32,8 @@ const stockEventSchema = new Schema( { timestamps: true } ); +stockEventSchema.index({ parentType: 'text', ownerType: 'text', unit: 'text' }); + // Add virtual id getter stockEventSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/inventory/stocklocation.schema.js b/src/database/schemas/inventory/stocklocation.schema.js index af135f1..796d5b5 100644 --- a/src/database/schemas/inventory/stocklocation.schema.js +++ b/src/database/schemas/inventory/stocklocation.schema.js @@ -21,6 +21,8 @@ const stockLocationSchema = new Schema( { timestamps: true } ); +stockLocationSchema.index({ name: 'text' }); + stockLocationSchema.statics.stats = async function () { const total = await this.countDocuments({}); return { total: { count: total } }; diff --git a/src/database/schemas/inventory/stocktransfer.schema.js b/src/database/schemas/inventory/stocktransfer.schema.js index 9d0e706..2ea7bb0 100644 --- a/src/database/schemas/inventory/stocktransfer.schema.js +++ b/src/database/schemas/inventory/stocktransfer.schema.js @@ -48,6 +48,8 @@ const stockTransferSchema = new Schema( { timestamps: true } ); +stockTransferSchema.index({ name: 'text' }); + stockTransferSchema.statics.stats = async function () { const [draft, posted] = await Promise.all([ this.countDocuments({ 'state.type': 'draft' }), diff --git a/src/database/schemas/management/apppassword.schema.js b/src/database/schemas/management/apppassword.schema.js index bcc4f21..e4e3904 100644 --- a/src/database/schemas/management/apppassword.schema.js +++ b/src/database/schemas/management/apppassword.schema.js @@ -13,6 +13,8 @@ const appPasswordSchema = new mongoose.Schema( { timestamps: true } ); +appPasswordSchema.index({ name: 'text' }); + appPasswordSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/auditlog.schema.js b/src/database/schemas/management/auditlog.schema.js index 16fb76c..96f9e16 100644 --- a/src/database/schemas/management/auditlog.schema.js +++ b/src/database/schemas/management/auditlog.schema.js @@ -36,6 +36,8 @@ const auditLogSchema = new Schema( { timestamps: true } ); +auditLogSchema.index({ operation: 'text', parentType: 'text', ownerType: 'text' }); + // Add virtual id getter auditLogSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/courier.schema.js b/src/database/schemas/management/courier.schema.js index 50c473e..2d68188 100644 --- a/src/database/schemas/management/courier.schema.js +++ b/src/database/schemas/management/courier.schema.js @@ -14,6 +14,8 @@ const courierSchema = new mongoose.Schema( { timestamps: true } ); +courierSchema.index({ name: 'text', website: 'text', email: 'text', phone: 'text', contact: 'text', country: 'text' }); + courierSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/courierservice.schema.js b/src/database/schemas/management/courierservice.schema.js index 2d264e8..db5690c 100644 --- a/src/database/schemas/management/courierservice.schema.js +++ b/src/database/schemas/management/courierservice.schema.js @@ -15,6 +15,8 @@ const courierServiceSchema = new mongoose.Schema( { timestamps: true } ); +courierServiceSchema.index({ name: 'text', website: 'text' }); + courierServiceSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/documentjob.schema.js b/src/database/schemas/management/documentjob.schema.js index aba8135..2e0a637 100644 --- a/src/database/schemas/management/documentjob.schema.js +++ b/src/database/schemas/management/documentjob.schema.js @@ -39,6 +39,8 @@ const documentJobSchema = new Schema( { timestamps: true } ); +documentJobSchema.index({ name: 'text', objectType: 'text' }); + // Add virtual id getter documentJobSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/documentprinter.schema.js b/src/database/schemas/management/documentprinter.schema.js index f3bbf6b..09d9be0 100644 --- a/src/database/schemas/management/documentprinter.schema.js +++ b/src/database/schemas/management/documentprinter.schema.js @@ -38,6 +38,8 @@ const documentPrinterSchema = new Schema( { timestamps: true } ); +documentPrinterSchema.index({ name: 'text', tags: 'text' }); + // Add virtual id getter documentPrinterSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/documentsize.schema.js b/src/database/schemas/management/documentsize.schema.js index 9ffd80b..b1caeb5 100644 --- a/src/database/schemas/management/documentsize.schema.js +++ b/src/database/schemas/management/documentsize.schema.js @@ -29,6 +29,8 @@ const documentSizeSchema = new Schema( { timestamps: true } ); +documentSizeSchema.index({ name: 'text' }); + // Add virtual id getter documentSizeSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/documenttemplate.schema.js b/src/database/schemas/management/documenttemplate.schema.js index 042e37b..b3fabe0 100644 --- a/src/database/schemas/management/documenttemplate.schema.js +++ b/src/database/schemas/management/documenttemplate.schema.js @@ -52,6 +52,8 @@ const documentTemplateSchema = new Schema( { timestamps: true } ); +documentTemplateSchema.index({ name: 'text', tags: 'text', objectType: 'text' }); + // Add virtual id getter documentTemplateSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/filament.schema.js b/src/database/schemas/management/filament.schema.js index 1642abc..720ccc4 100644 --- a/src/database/schemas/management/filament.schema.js +++ b/src/database/schemas/management/filament.schema.js @@ -18,6 +18,8 @@ const filamentSchema = new mongoose.Schema({ costWithTax: { type: Number, required: false }, }, { timestamps: true }); +filamentSchema.index({ name: 'text', barcode: 'text', url: 'text' }); + filamentSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/filamentsku.schema.js b/src/database/schemas/management/filamentsku.schema.js index 3d4caa5..97e995d 100644 --- a/src/database/schemas/management/filamentsku.schema.js +++ b/src/database/schemas/management/filamentsku.schema.js @@ -19,6 +19,8 @@ const filamentSkuSchema = new Schema( { timestamps: true } ); +filamentSkuSchema.index({ name: 'text', barcode: 'text', description: 'text', color: 'text' }); + // Add virtual id getter filamentSkuSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/file.schema.js b/src/database/schemas/management/file.schema.js index 8e21c90..058b607 100644 --- a/src/database/schemas/management/file.schema.js +++ b/src/database/schemas/management/file.schema.js @@ -13,6 +13,8 @@ const fileSchema = new mongoose.Schema( { timestamps: true } ); +fileSchema.index({ name: 'text', type: 'text', extension: 'text' }); + fileSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/host.schema.js b/src/database/schemas/management/host.schema.js index fa26f13..2c29715 100644 --- a/src/database/schemas/management/host.schema.js +++ b/src/database/schemas/management/host.schema.js @@ -63,6 +63,8 @@ const hostSchema = new mongoose.Schema( { timestamps: true } ); +hostSchema.index({ name: 'text', tags: 'text' }); + hostSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/material.schema.js b/src/database/schemas/management/material.schema.js index 1cd6b3a..c24d44b 100644 --- a/src/database/schemas/management/material.schema.js +++ b/src/database/schemas/management/material.schema.js @@ -11,6 +11,8 @@ const materialSchema = new mongoose.Schema( { timestamps: true } ); +materialSchema.index({ name: 'text', url: 'text', tags: 'text' }); + materialSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/notetype.schema.js b/src/database/schemas/management/notetype.schema.js index b70312b..c7c76d5 100644 --- a/src/database/schemas/management/notetype.schema.js +++ b/src/database/schemas/management/notetype.schema.js @@ -23,6 +23,8 @@ const noteTypeSchema = new Schema( { timestamps: true } ); +noteTypeSchema.index({ name: 'text' }); + // Add virtual id getter noteTypeSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/part.schema.js b/src/database/schemas/management/part.schema.js index da4e5da..682f6e7 100644 --- a/src/database/schemas/management/part.schema.js +++ b/src/database/schemas/management/part.schema.js @@ -21,6 +21,8 @@ const partSchema = new Schema( { timestamps: true } ); +partSchema.index({ name: 'text' }); + // Add virtual id getter partSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/partsku.schema.js b/src/database/schemas/management/partsku.schema.js index 7c8d056..02c443e 100644 --- a/src/database/schemas/management/partsku.schema.js +++ b/src/database/schemas/management/partsku.schema.js @@ -25,6 +25,8 @@ const partSkuSchema = new Schema( { timestamps: true } ); +partSkuSchema.index({ name: 'text', barcode: 'text', description: 'text' }); + // Add virtual id getter partSkuSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/product.schema.js b/src/database/schemas/management/product.schema.js index c3640b4..09e9813 100644 --- a/src/database/schemas/management/product.schema.js +++ b/src/database/schemas/management/product.schema.js @@ -23,6 +23,9 @@ const productSchema = new Schema( }, { timestamps: true } ); + +productSchema.index({ name: 'text', tags: 'text', version: 'text' }); + // Add virtual id getter productSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/productcategory.schema.js b/src/database/schemas/management/productcategory.schema.js index d01ce07..5d735f6 100644 --- a/src/database/schemas/management/productcategory.schema.js +++ b/src/database/schemas/management/productcategory.schema.js @@ -9,6 +9,8 @@ const productCategorySchema = new mongoose.Schema( { timestamps: true } ); +productCategorySchema.index({ name: 'text' }); + productCategorySchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/productsku.schema.js b/src/database/schemas/management/productsku.schema.js index 9a8e24a..43db50b 100644 --- a/src/database/schemas/management/productsku.schema.js +++ b/src/database/schemas/management/productsku.schema.js @@ -32,6 +32,8 @@ const productSkuSchema = new Schema( { timestamps: true } ); +productSkuSchema.index({ name: 'text', barcode: 'text', description: 'text' }); + // Add virtual id getter productSkuSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/management/taxrate.schema.js b/src/database/schemas/management/taxrate.schema.js index 898c3ca..074eb63 100644 --- a/src/database/schemas/management/taxrate.schema.js +++ b/src/database/schemas/management/taxrate.schema.js @@ -16,6 +16,8 @@ const taxRateSchema = new mongoose.Schema( { timestamps: true } ); +taxRateSchema.index({ name: 'text', description: 'text', country: 'text' }); + taxRateSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/user.schema.js b/src/database/schemas/management/user.schema.js index c7b4d77..283fecb 100644 --- a/src/database/schemas/management/user.schema.js +++ b/src/database/schemas/management/user.schema.js @@ -15,6 +15,8 @@ const userSchema = new mongoose.Schema( { timestamps: true } ); +userSchema.index({ username: 'text', name: 'text', firstName: 'text', lastName: 'text', email: 'text' }); + userSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/management/vendor.schema.js b/src/database/schemas/management/vendor.schema.js index 98ec413..8dfe6d3 100644 --- a/src/database/schemas/management/vendor.schema.js +++ b/src/database/schemas/management/vendor.schema.js @@ -26,6 +26,8 @@ const vendorSchema = new mongoose.Schema( { timestamps: true } ); +vendorSchema.index({ name: 'text', website: 'text', email: 'text', phone: 'text', contact: 'text', country: 'text' }); + vendorSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/production/gcodefile.schema.js b/src/database/schemas/production/gcodefile.schema.js index acd137b..a30eac2 100644 --- a/src/database/schemas/production/gcodefile.schema.js +++ b/src/database/schemas/production/gcodefile.schema.js @@ -30,7 +30,7 @@ gcodeFileSchema.pre('validate', async function () { } }); -gcodeFileSchema.index({ name: 'text', brand: 'text' }); +gcodeFileSchema.index({ name: 'text', gcodeFileName: 'text' }); gcodeFileSchema.virtual('id').get(function () { return this._id; diff --git a/src/database/schemas/production/job.schema.js b/src/database/schemas/production/job.schema.js index 2163e29..07ea0d2 100644 --- a/src/database/schemas/production/job.schema.js +++ b/src/database/schemas/production/job.schema.js @@ -32,6 +32,8 @@ const jobSchema = new mongoose.Schema( { timestamps: true } ); +jobSchema.index({ 'state.type': 'text' }); + const rollupConfigs = [ { name: 'queued', diff --git a/src/database/schemas/production/printer.schema.js b/src/database/schemas/production/printer.schema.js index e54e1ef..35b8398 100644 --- a/src/database/schemas/production/printer.schema.js +++ b/src/database/schemas/production/printer.schema.js @@ -57,6 +57,8 @@ const printerSchema = new Schema( { timestamps: true } ); +printerSchema.index({ name: 'text', tags: 'text', firmware: 'text' }); + const rollupConfigs = [ { name: 'standby', diff --git a/src/database/schemas/production/subjob.schema.js b/src/database/schemas/production/subjob.schema.js index adbae06..02d2522 100644 --- a/src/database/schemas/production/subjob.schema.js +++ b/src/database/schemas/production/subjob.schema.js @@ -43,6 +43,8 @@ const subJobSchema = new mongoose.Schema({ finishedAt: { required: false, type: Date, default: null }, }); +subJobSchema.index({ moonrakerJobId: 'text', 'state.type': 'text' }); + subJobSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/sales/client.schema.js b/src/database/schemas/sales/client.schema.js index 005c820..52dbb62 100644 --- a/src/database/schemas/sales/client.schema.js +++ b/src/database/schemas/sales/client.schema.js @@ -26,6 +26,8 @@ const clientSchema = new mongoose.Schema( { timestamps: true } ); +clientSchema.index({ name: 'text', email: 'text', phone: 'text', country: 'text', tags: 'text' }); + clientSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/sales/listing.schema.js b/src/database/schemas/sales/listing.schema.js index 20f14fd..20ecc48 100644 --- a/src/database/schemas/sales/listing.schema.js +++ b/src/database/schemas/sales/listing.schema.js @@ -26,6 +26,8 @@ const listingSchema = new Schema( { timestamps: true } ); +listingSchema.index({ title: 'text', url: 'text' }); + listingSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/sales/listingvarient.schema.js b/src/database/schemas/sales/listingvarient.schema.js index 12cc007..ffec816 100644 --- a/src/database/schemas/sales/listingvarient.schema.js +++ b/src/database/schemas/sales/listingvarient.schema.js @@ -25,6 +25,8 @@ const listingVarientSchema = new Schema( { timestamps: true } ); +listingVarientSchema.index({ currency: 'text', 'state.type': 'text' }); + listingVarientSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/sales/marketplace.schema.js b/src/database/schemas/sales/marketplace.schema.js index 06caf37..531a8a8 100644 --- a/src/database/schemas/sales/marketplace.schema.js +++ b/src/database/schemas/sales/marketplace.schema.js @@ -28,6 +28,8 @@ const marketplaceSchema = new mongoose.Schema( { timestamps: true } ); +marketplaceSchema.index({ name: 'text', provider: 'text' }); + marketplaceSchema.virtual('id').get(function () { return this._id; }); diff --git a/src/database/schemas/sales/salesorder.schema.js b/src/database/schemas/sales/salesorder.schema.js index 6a2ade7..8db9258 100644 --- a/src/database/schemas/sales/salesorder.schema.js +++ b/src/database/schemas/sales/salesorder.schema.js @@ -30,6 +30,8 @@ const salesOrderSchema = new Schema( { timestamps: true } ); +salesOrderSchema.index({ 'state.type': 'text' }); + const rollupConfigs = [ { name: 'draft', diff --git a/src/routes/finance/invoices.js b/src/routes/finance/invoices.js index 7f353a1..c45ac77 100644 --- a/src/routes/finance/invoices.js +++ b/src/routes/finance/invoices.js @@ -16,6 +16,7 @@ import { acknowledgeInvoiceRouteHandler, cancelInvoiceRouteHandler, postInvoiceRouteHandler, + searchInvoicesRouteHandler } from '../../services/finance/invoices.js'; // list of invoices @@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchInvoicesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newInvoiceRouteHandler(req, res); diff --git a/src/routes/finance/payments.js b/src/routes/finance/payments.js index 05b55d6..4a23f51 100644 --- a/src/routes/finance/payments.js +++ b/src/routes/finance/payments.js @@ -17,6 +17,7 @@ import { authorisePaymentRouteHandler, declinePaymentRouteHandler, cancelPaymentRouteHandler, + searchPaymentsRouteHandler } from '../../services/finance/payments.js'; // list of payments @@ -54,6 +55,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchPaymentsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newPaymentRouteHandler(req, res); diff --git a/src/routes/finance/taxrecords.js b/src/routes/finance/taxrecords.js index 2b54afc..b90baf7 100644 --- a/src/routes/finance/taxrecords.js +++ b/src/routes/finance/taxrecords.js @@ -12,6 +12,7 @@ import { listTaxRecordsByPropertiesRouteHandler, getTaxRecordStatsRouteHandler, getTaxRecordHistoryRouteHandler, + searchTaxRecordsRouteHandler } from '../../services/finance/taxrecords.js'; // list of tax records @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchTaxRecordsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newTaxRecordRouteHandler(req, res); diff --git a/src/routes/inventory/filamentstocks.js b/src/routes/inventory/filamentstocks.js index 8e6fe6b..49fbea2 100644 --- a/src/routes/inventory/filamentstocks.js +++ b/src/routes/inventory/filamentstocks.js @@ -13,6 +13,7 @@ import { listFilamentStocksByPropertiesRouteHandler, getFilamentStockStatsRouteHandler, getFilamentStockHistoryRouteHandler, + searchFilamentStocksRouteHandler } from '../../services/inventory/filamentstocks.js'; // list of filament stocks @@ -49,6 +50,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchFilamentStocksRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newFilamentStockRouteHandler(req, res); diff --git a/src/routes/inventory/orderitems.js b/src/routes/inventory/orderitems.js index cca5b72..da51f01 100644 --- a/src/routes/inventory/orderitems.js +++ b/src/routes/inventory/orderitems.js @@ -13,6 +13,7 @@ import { listOrderItemsByPropertiesRouteHandler, getOrderItemStatsRouteHandler, getOrderItemHistoryRouteHandler, + searchOrderItemsRouteHandler } from '../../services/inventory/orderitems.js'; // list of order items @@ -53,6 +54,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchOrderItemsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newOrderItemRouteHandler(req, res); diff --git a/src/routes/inventory/partstocks.js b/src/routes/inventory/partstocks.js index 774a090..fb3d536 100644 --- a/src/routes/inventory/partstocks.js +++ b/src/routes/inventory/partstocks.js @@ -13,6 +13,7 @@ import { listPartStocksByPropertiesRouteHandler, getPartStockStatsRouteHandler, getPartStockHistoryRouteHandler, + searchPartStocksRouteHandler } from '../../services/inventory/partstocks.js'; // list of part stocks @@ -41,6 +42,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchPartStocksRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newPartStockRouteHandler(req, res); diff --git a/src/routes/inventory/productstocks.js b/src/routes/inventory/productstocks.js index bfff9e4..1382128 100644 --- a/src/routes/inventory/productstocks.js +++ b/src/routes/inventory/productstocks.js @@ -14,6 +14,7 @@ import { listProductStocksByPropertiesRouteHandler, getProductStockStatsRouteHandler, getProductStockHistoryRouteHandler, + searchProductStocksRouteHandler } from '../../services/inventory/productstocks.js'; router.get('/', isAuthenticated, (req, res) => { @@ -40,6 +41,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchProductStocksRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newProductStockRouteHandler(req, res); diff --git a/src/routes/inventory/purchaseorders.js b/src/routes/inventory/purchaseorders.js index 1207096..c824155 100644 --- a/src/routes/inventory/purchaseorders.js +++ b/src/routes/inventory/purchaseorders.js @@ -16,6 +16,7 @@ import { postPurchaseOrderRouteHandler, acknowledgePurchaseOrderRouteHandler, cancelPurchaseOrderRouteHandler, + searchPurchaseOrdersRouteHandler } from '../../services/inventory/purchaseorders.js'; // list of purchase orders @@ -58,6 +59,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchPurchaseOrdersRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newPurchaseOrderRouteHandler(req, res); diff --git a/src/routes/inventory/shipments.js b/src/routes/inventory/shipments.js index f457f55..9900ddd 100644 --- a/src/routes/inventory/shipments.js +++ b/src/routes/inventory/shipments.js @@ -16,6 +16,7 @@ import { shipShipmentRouteHandler, receiveShipmentRouteHandler, cancelShipmentRouteHandler, + searchShipmentsRouteHandler } from '../../services/inventory/shipments.js'; // list of shipments @@ -43,6 +44,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchShipmentsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newShipmentRouteHandler(req, res); diff --git a/src/routes/inventory/stockaudits.js b/src/routes/inventory/stockaudits.js index 72fbf04..a3efd9e 100644 --- a/src/routes/inventory/stockaudits.js +++ b/src/routes/inventory/stockaudits.js @@ -11,6 +11,7 @@ import { deleteStockAuditRouteHandler, getStockAuditStatsRouteHandler, getStockAuditHistoryRouteHandler, + searchStockAuditsRouteHandler } from '../../services/inventory/stockaudits.js'; // List stock audits @@ -39,6 +40,11 @@ router.post('/', isAuthenticated, (req, res) => { }); // get stock audit stats +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchStockAuditsRouteHandler(req, res, search); +}); + router.get('/stats', isAuthenticated, (req, res) => { getStockAuditStatsRouteHandler(req, res); }); diff --git a/src/routes/inventory/stockevents.js b/src/routes/inventory/stockevents.js index cb97d10..6fba4d5 100644 --- a/src/routes/inventory/stockevents.js +++ b/src/routes/inventory/stockevents.js @@ -13,6 +13,7 @@ import { listStockEventsByPropertiesRouteHandler, getStockEventStatsRouteHandler, getStockEventHistoryRouteHandler, + searchStockEventsRouteHandler } from '../../services/inventory/stockevents.js'; // list of stock events @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchStockEventsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newStockEventRouteHandler(req, res); diff --git a/src/routes/inventory/stocklocations.js b/src/routes/inventory/stocklocations.js index f020938..df6dcfa 100644 --- a/src/routes/inventory/stocklocations.js +++ b/src/routes/inventory/stocklocations.js @@ -13,6 +13,7 @@ import { listStockLocationsByPropertiesRouteHandler, getStockLocationStatsRouteHandler, getStockLocationHistoryRouteHandler, + searchStockLocationsRouteHandler } from '../../services/inventory/stocklocations.js'; router.get('/', isAuthenticated, (req, res) => { @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchStockLocationsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newStockLocationRouteHandler(req, res); diff --git a/src/routes/inventory/stocktransfers.js b/src/routes/inventory/stocktransfers.js index 101f311..925611b 100644 --- a/src/routes/inventory/stocktransfers.js +++ b/src/routes/inventory/stocktransfers.js @@ -14,6 +14,7 @@ import { listStockTransfersByPropertiesRouteHandler, getStockTransferStatsRouteHandler, getStockTransferHistoryRouteHandler, + searchStockTransfersRouteHandler } from '../../services/inventory/stocktransfers.js'; router.get('/', isAuthenticated, (req, res) => { @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchStockTransfersRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newStockTransferRouteHandler(req, res); diff --git a/src/routes/management/apppasswords.js b/src/routes/management/apppasswords.js index 3f7e796..6dca369 100644 --- a/src/routes/management/apppasswords.js +++ b/src/routes/management/apppasswords.js @@ -13,6 +13,7 @@ import { getAppPasswordStatsRouteHandler, getAppPasswordHistoryRouteHandler, regenerateSecretRouteHandler, + searchAppPasswordsRouteHandler } from '../../services/management/apppasswords.js'; router.get('/', isAuthenticated, (req, res) => { @@ -29,6 +30,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {}; listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchAppPasswordsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newAppPasswordRouteHandler(req, res); diff --git a/src/routes/management/auditlogs.js b/src/routes/management/auditlogs.js index 26a3acc..955c25a 100644 --- a/src/routes/management/auditlogs.js +++ b/src/routes/management/auditlogs.js @@ -5,6 +5,7 @@ import { getAuditLogRouteHandler, getAuditLogStatsRouteHandler, getAuditLogHistoryRouteHandler, + searchAuditLogsRouteHandler } from '../../services/management/auditlogs.js'; import { parseFilter } from '../../utils.js'; @@ -30,6 +31,11 @@ router.get('/', isAuthenticated, async (req, res) => { }); // get audit log stats +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchAuditLogsRouteHandler(req, res, search); +}); + router.get('/stats', isAuthenticated, (req, res) => { getAuditLogStatsRouteHandler(req, res); }); diff --git a/src/routes/management/courier.js b/src/routes/management/courier.js index e6c2f90..30ae45a 100644 --- a/src/routes/management/courier.js +++ b/src/routes/management/courier.js @@ -12,6 +12,7 @@ import { listCouriersByPropertiesRouteHandler, getCourierStatsRouteHandler, getCourierHistoryRouteHandler, + searchCouriersRouteHandler } from '../../services/management/courier.js'; // list of couriers @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listCouriersByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchCouriersRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newCourierRouteHandler(req, res); diff --git a/src/routes/management/courierservice.js b/src/routes/management/courierservice.js index 46e3f54..0e8df16 100644 --- a/src/routes/management/courierservice.js +++ b/src/routes/management/courierservice.js @@ -12,6 +12,7 @@ import { listCourierServicesByPropertiesRouteHandler, getCourierServiceStatsRouteHandler, getCourierServiceHistoryRouteHandler, + searchCourierServicesRouteHandler } from '../../services/management/courierservice.js'; // list of courier services @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listCourierServicesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchCourierServicesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newCourierServiceRouteHandler(req, res); diff --git a/src/routes/management/documentjobs.js b/src/routes/management/documentjobs.js index 11caae8..5d3d6cd 100644 --- a/src/routes/management/documentjobs.js +++ b/src/routes/management/documentjobs.js @@ -12,6 +12,7 @@ import { listDocumentJobsByPropertiesRouteHandler, getDocumentJobStatsRouteHandler, getDocumentJobHistoryRouteHandler, + searchDocumentJobsRouteHandler } from '../../services/management/documentjobs.js'; // list of document jobs @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchDocumentJobsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newDocumentJobRouteHandler(req, res); diff --git a/src/routes/management/documentprinters.js b/src/routes/management/documentprinters.js index 8bb2ea2..482cedd 100644 --- a/src/routes/management/documentprinters.js +++ b/src/routes/management/documentprinters.js @@ -12,6 +12,7 @@ import { listDocumentPrintersByPropertiesRouteHandler, getDocumentPrinterStatsRouteHandler, getDocumentPrinterHistoryRouteHandler, + searchDocumentPrintersRouteHandler } from '../../services/management/documentprinters.js'; // list of document printers @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchDocumentPrintersRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newDocumentPrinterRouteHandler(req, res); diff --git a/src/routes/management/documentsizes.js b/src/routes/management/documentsizes.js index b06afb6..ec3856b 100644 --- a/src/routes/management/documentsizes.js +++ b/src/routes/management/documentsizes.js @@ -12,6 +12,7 @@ import { listDocumentSizesByPropertiesRouteHandler, getDocumentSizeStatsRouteHandler, getDocumentSizeHistoryRouteHandler, + searchDocumentSizesRouteHandler } from '../../services/management/documentsizes.js'; // list of document sizes @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchDocumentSizesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newDocumentSizeRouteHandler(req, res); diff --git a/src/routes/management/documenttemplates.js b/src/routes/management/documenttemplates.js index 1acfa13..e2892e5 100644 --- a/src/routes/management/documenttemplates.js +++ b/src/routes/management/documenttemplates.js @@ -12,6 +12,7 @@ import { listDocumentTemplatesByPropertiesRouteHandler, getDocumentTemplateStatsRouteHandler, getDocumentTemplateHistoryRouteHandler, + searchDocumentTemplatesRouteHandler } from '../../services/management/documenttemplates.js'; // list of document templates @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchDocumentTemplatesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newDocumentTemplateRouteHandler(req, res); diff --git a/src/routes/management/filaments.js b/src/routes/management/filaments.js index 6a7fe8f..9a917d9 100644 --- a/src/routes/management/filaments.js +++ b/src/routes/management/filaments.js @@ -13,6 +13,7 @@ import { deleteFilamentRouteHandler, getFilamentStatsRouteHandler, getFilamentHistoryRouteHandler, + searchFilamentsRouteHandler } from '../../services/management/filaments.js'; // list of filaments @@ -47,6 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listFilamentsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchFilamentsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newFilamentRouteHandler(req, res); diff --git a/src/routes/management/filamentskus.js b/src/routes/management/filamentskus.js index e066d0f..31acc3a 100644 --- a/src/routes/management/filamentskus.js +++ b/src/routes/management/filamentskus.js @@ -12,6 +12,7 @@ import { listFilamentSkusByPropertiesRouteHandler, getFilamentSkuStatsRouteHandler, getFilamentSkuHistoryRouteHandler, + searchFilamentSkusRouteHandler } from '../../services/management/filamentskus.js'; router.get('/', isAuthenticated, (req, res) => { @@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchFilamentSkusRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newFilamentSkuRouteHandler(req, res); diff --git a/src/routes/management/files.js b/src/routes/management/files.js index f44208a..bb379e4 100644 --- a/src/routes/management/files.js +++ b/src/routes/management/files.js @@ -14,6 +14,7 @@ import { listFilesByPropertiesRouteHandler, getFileStatsRouteHandler, getFileHistoryRouteHandler, + searchFilesRouteHandler } from '../../services/management/files.js'; // list of files @@ -30,6 +31,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listFilesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchFilesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newFileRouteHandler(req, res); diff --git a/src/routes/management/hosts.js b/src/routes/management/hosts.js index a7eeb64..2e8e5d9 100644 --- a/src/routes/management/hosts.js +++ b/src/routes/management/hosts.js @@ -12,6 +12,7 @@ import { listHostsByPropertiesRouteHandler, getHostStatsRouteHandler, getHostHistoryRouteHandler, + searchHostsRouteHandler } from '../../services/management/hosts.js'; // list of hosts @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listHostsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchHostsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newHostRouteHandler(req, res); diff --git a/src/routes/management/materials.js b/src/routes/management/materials.js index e5e1c94..82d769e 100644 --- a/src/routes/management/materials.js +++ b/src/routes/management/materials.js @@ -11,6 +11,7 @@ import { newMaterialRouteHandler, getMaterialStatsRouteHandler, getMaterialHistoryRouteHandler, + searchMaterialsRouteHandler, } from '../../services/management/materials.js'; // list of materials @@ -37,6 +38,11 @@ router.get('/properties', isAuthenticated, (req, res) => { listMaterialsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchMaterialsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newMaterialRouteHandler(req, res); }); diff --git a/src/routes/management/notetypes.js b/src/routes/management/notetypes.js index 3385fc6..4695efe 100644 --- a/src/routes/management/notetypes.js +++ b/src/routes/management/notetypes.js @@ -12,6 +12,7 @@ import { listNoteTypesByPropertiesRouteHandler, getNoteTypeStatsRouteHandler, getNoteTypeHistoryRouteHandler, + searchNoteTypesRouteHandler } from '../../services/management/notetypes.js'; // list of note types @@ -32,6 +33,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchNoteTypesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newNoteTypeRouteHandler(req, res); diff --git a/src/routes/management/parts.js b/src/routes/management/parts.js index d8d4c03..dfcb2d5 100644 --- a/src/routes/management/parts.js +++ b/src/routes/management/parts.js @@ -12,6 +12,7 @@ import { listPartsByPropertiesRouteHandler, getPartStatsRouteHandler, getPartHistoryRouteHandler, + searchPartsRouteHandler } from '../../services/management/parts.js'; // list of parts @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listPartsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchPartsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newPartRouteHandler(req, res); diff --git a/src/routes/management/partskus.js b/src/routes/management/partskus.js index 9728b38..bc8d8c6 100644 --- a/src/routes/management/partskus.js +++ b/src/routes/management/partskus.js @@ -12,6 +12,7 @@ import { listPartSkusByPropertiesRouteHandler, getPartSkuStatsRouteHandler, getPartSkuHistoryRouteHandler, + searchPartSkusRouteHandler } from '../../services/management/partskus.js'; router.get('/', isAuthenticated, (req, res) => { @@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchPartSkusRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newPartSkuRouteHandler(req, res); diff --git a/src/routes/management/productcategories.js b/src/routes/management/productcategories.js index e3dde6b..ad7f9ff 100644 --- a/src/routes/management/productcategories.js +++ b/src/routes/management/productcategories.js @@ -10,6 +10,7 @@ import { listProductCategoriesByPropertiesRouteHandler, listProductCategoriesRouteHandler, newProductCategoryRouteHandler, + searchProductCategoriesRouteHandler } from '../../services/management/productcategories.js'; const router = express.Router(); @@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchProductCategoriesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newProductCategoryRouteHandler(req, res); diff --git a/src/routes/management/products.js b/src/routes/management/products.js index 9a3cb95..2908d86 100644 --- a/src/routes/management/products.js +++ b/src/routes/management/products.js @@ -12,6 +12,7 @@ import { listProductsByPropertiesRouteHandler, getProductStatsRouteHandler, getProductHistoryRouteHandler, + searchProductsRouteHandler } from '../../services/management/products.js'; // list of products @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listProductsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchProductsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newProductRouteHandler(req, res); diff --git a/src/routes/management/productskus.js b/src/routes/management/productskus.js index b0ddb8a..a73b5ee 100644 --- a/src/routes/management/productskus.js +++ b/src/routes/management/productskus.js @@ -12,6 +12,7 @@ import { listProductSkusByPropertiesRouteHandler, getProductSkuStatsRouteHandler, getProductSkuHistoryRouteHandler, + searchProductSkusRouteHandler } from '../../services/management/productskus.js'; router.get('/', isAuthenticated, (req, res) => { @@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchProductSkusRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newProductSkuRouteHandler(req, res); diff --git a/src/routes/management/taxrates.js b/src/routes/management/taxrates.js index 250bdd1..0bd98a2 100644 --- a/src/routes/management/taxrates.js +++ b/src/routes/management/taxrates.js @@ -12,6 +12,7 @@ import { listTaxRatesByPropertiesRouteHandler, getTaxRateStatsRouteHandler, getTaxRateHistoryRouteHandler, + searchTaxRatesRouteHandler } from '../../services/management/taxrates.js'; // list of tax rates @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listTaxRatesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchTaxRatesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newTaxRateRouteHandler(req, res); diff --git a/src/routes/management/users.js b/src/routes/management/users.js index e6ef36f..f6ef435 100644 --- a/src/routes/management/users.js +++ b/src/routes/management/users.js @@ -11,6 +11,7 @@ import { getUserStatsRouteHandler, getUserHistoryRouteHandler, setAppPasswordRouteHandler, + searchUsersRouteHandler } from '../../services/management/users.js'; // list of document templates @@ -31,6 +32,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchUsersRouteHandler(req, res, search); +}); + // get user stats router.get('/stats', isAuthenticated, (req, res) => { diff --git a/src/routes/management/vendors.js b/src/routes/management/vendors.js index 259ccbd..6729d97 100644 --- a/src/routes/management/vendors.js +++ b/src/routes/management/vendors.js @@ -12,6 +12,7 @@ import { listVendorsByPropertiesRouteHandler, getVendorStatsRouteHandler, getVendorHistoryRouteHandler, + searchVendorsRouteHandler } from '../../services/management/vendors.js'; // list of vendors @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listVendorsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchVendorsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newVendorRouteHandler(req, res); diff --git a/src/routes/production/gcodefiles.js b/src/routes/production/gcodefiles.js index 18040f1..a8142e9 100644 --- a/src/routes/production/gcodefiles.js +++ b/src/routes/production/gcodefiles.js @@ -10,6 +10,7 @@ import { listGCodeFilesByPropertiesRouteHandler, getGCodeFileContentRouteHandler, getGCodeFileStatsRouteHandler, + searchGCodeFilesRouteHandler } from '../../services/production/gcodefiles.js'; import { convertPropertiesString, getFilter } from '../../utils.js'; @@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchGCodeFilesRouteHandler(req, res, search); +}); + // create new gcodeFile router.post('/', isAuthenticated, (req, res) => { diff --git a/src/routes/production/jobs.js b/src/routes/production/jobs.js index 2a3c2b1..9ebb216 100644 --- a/src/routes/production/jobs.js +++ b/src/routes/production/jobs.js @@ -10,6 +10,7 @@ import { deleteJobRouteHandler, getJobStatsRouteHandler, getJobHistoryRouteHandler, + searchJobsRouteHandler } from '../../services/production/jobs.js'; import { convertPropertiesString, getFilter } from '../../utils.js'; @@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listJobsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchJobsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newJobRouteHandler(req, res); diff --git a/src/routes/production/printers.js b/src/routes/production/printers.js index 0810aec..bc25529 100644 --- a/src/routes/production/printers.js +++ b/src/routes/production/printers.js @@ -10,6 +10,7 @@ import { getPrinterStatsRouteHandler, listPrintersByPropertiesRouteHandler, getPrinterHistoryRouteHandler, + searchPrintersRouteHandler } from '../../services/production/printers.js'; import { convertPropertiesString, getFilter } from '../../utils.js'; @@ -27,6 +28,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listPrintersByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchPrintersRouteHandler(req, res, search); +}); + // create new printer router.post('/', isAuthenticated, (req, res) => { diff --git a/src/routes/production/subjobs.js b/src/routes/production/subjobs.js index be3075f..f9fafc3 100644 --- a/src/routes/production/subjobs.js +++ b/src/routes/production/subjobs.js @@ -8,6 +8,7 @@ import { getSubJobRouteHandler, getSubJobStatsRouteHandler, getSubJobHistoryRouteHandler, + searchSubJobsRouteHandler } from '../../services/production/subjobs.js'; import { getFilter, convertPropertiesString } from '../../utils.js'; @@ -25,6 +26,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listSubJobsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchSubJobsRouteHandler(req, res, search); +}); + // get sub job stats router.get('/stats', isAuthenticated, (req, res) => { diff --git a/src/routes/sales/clients.js b/src/routes/sales/clients.js index 6da73bd..e2b269f 100644 --- a/src/routes/sales/clients.js +++ b/src/routes/sales/clients.js @@ -12,6 +12,7 @@ import { listClientsByPropertiesRouteHandler, getClientStatsRouteHandler, getClientHistoryRouteHandler, + searchClientsRouteHandler } from '../../services/sales/clients.js'; // list of clients @@ -28,6 +29,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listClientsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchClientsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newClientRouteHandler(req, res); diff --git a/src/routes/sales/listings.js b/src/routes/sales/listings.js index 1914bb2..7df6916 100644 --- a/src/routes/sales/listings.js +++ b/src/routes/sales/listings.js @@ -14,6 +14,7 @@ import { getListingHistoryRouteHandler, publishListingRouteHandler, unpublishListingRouteHandler, + searchListingsRouteHandler } from '../../services/sales/listings.js'; router.get('/', isAuthenticated, (req, res) => { @@ -47,6 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listListingsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchListingsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newListingRouteHandler(req, res); diff --git a/src/routes/sales/listingvarients.js b/src/routes/sales/listingvarients.js index 1b2f71e..18618fa 100644 --- a/src/routes/sales/listingvarients.js +++ b/src/routes/sales/listingvarients.js @@ -14,6 +14,7 @@ import { getListingVarientHistoryRouteHandler, publishListingVarientRouteHandler, unpublishListingVarientRouteHandler, + searchListingVarientsRouteHandler } from '../../services/sales/listingvarients.js'; router.get('/', isAuthenticated, (req, res) => { @@ -47,6 +48,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listListingVarientsByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchListingVarientsRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newListingVarientRouteHandler(req, res); diff --git a/src/routes/sales/marketplaces.js b/src/routes/sales/marketplaces.js index 854605a..06e8212 100644 --- a/src/routes/sales/marketplaces.js +++ b/src/routes/sales/marketplaces.js @@ -18,6 +18,7 @@ import { syncMarketplaceItemsRouteHandler, syncMarketplaceOrdersRouteHandler, marketplaceWebhookRouteHandler, + searchMarketplacesRouteHandler } from '../../services/sales/marketplaces.js'; router.get('/', isAuthenticated, (req, res) => { @@ -33,6 +34,11 @@ router.get('/properties', isAuthenticated, (req, res) => { const filter = getFilter(req.query, allowedFilters, false); listMarketplacesByPropertiesRouteHandler(req, res, properties, filter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchMarketplacesRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newMarketplaceRouteHandler(req, res); diff --git a/src/routes/sales/salesorders.js b/src/routes/sales/salesorders.js index 6080397..4511965 100644 --- a/src/routes/sales/salesorders.js +++ b/src/routes/sales/salesorders.js @@ -16,6 +16,7 @@ import { postSalesOrderRouteHandler, confirmSalesOrderRouteHandler, cancelSalesOrderRouteHandler, + searchSalesOrdersRouteHandler } from '../../services/sales/salesorders.js'; // list of sales orders @@ -36,6 +37,11 @@ router.get('/properties', isAuthenticated, (req, res) => { } listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter); }); +router.get('/search', isAuthenticated, (req, res) => { + const { search } = req.query; + searchSalesOrdersRouteHandler(req, res, search); +}); + router.post('/', isAuthenticated, (req, res) => { newSalesOrderRouteHandler(req, res); diff --git a/src/services/finance/invoices.js b/src/services/finance/invoices.js index 45d4a66..2f999dc 100644 --- a/src/services/finance/invoices.js +++ b/src/services/finance/invoices.js @@ -13,6 +13,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; @@ -82,6 +83,14 @@ export const listInvoicesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchInvoicesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: invoiceModel, + search, + }); + res.send(result); +}; + export const getInvoiceRouteHandler = async (req, res) => { const id = req.params.id; const populateFields = [ diff --git a/src/services/finance/payments.js b/src/services/finance/payments.js index 9a82e93..d777bcc 100644 --- a/src/services/finance/payments.js +++ b/src/services/finance/payments.js @@ -13,6 +13,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { invoiceModel } from '../../database/schemas/finance/invoice.schema.js'; @@ -79,6 +80,14 @@ export const listPaymentsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchPaymentsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: paymentModel, + search, + }); + res.send(result); +}; + export const getPaymentRouteHandler = async (req, res) => { const id = req.params.id; const populateFields = [{ path: 'vendor' }, { path: 'client' }, { path: 'invoice' }]; diff --git a/src/services/finance/taxrecords.js b/src/services/finance/taxrecords.js index c317858..9b49620 100644 --- a/src/services/finance/taxrecords.js +++ b/src/services/finance/taxrecords.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('TaxRecords'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listTaxRecordsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchTaxRecordsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: taxRecordModel, + search, + }); + res.send(result); +}; + export const getTaxRecordRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/filamentstocks.js b/src/services/inventory/filamentstocks.js index b81a466..d7fe464 100644 --- a/src/services/inventory/filamentstocks.js +++ b/src/services/inventory/filamentstocks.js @@ -12,6 +12,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Filament Stocks'); logger.level = config.server.logLevel; @@ -78,6 +79,14 @@ export const listFilamentStocksByPropertiesRouteHandler = async ( res.send(result); }; +export const searchFilamentStocksRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: filamentStockModel, + search, + }); + res.send(result); +}; + export const getFilamentStockRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/orderitems.js b/src/services/inventory/orderitems.js index 17c2680..d104722 100644 --- a/src/services/inventory/orderitems.js +++ b/src/services/inventory/orderitems.js @@ -13,6 +13,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Order Items'); logger.level = config.server.logLevel; @@ -123,6 +124,14 @@ export const listOrderItemsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchOrderItemsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: orderItemModel, + search, + }); + res.send(result); +}; + export const getOrderItemRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/partstocks.js b/src/services/inventory/partstocks.js index 1062153..c7bafef 100644 --- a/src/services/inventory/partstocks.js +++ b/src/services/inventory/partstocks.js @@ -12,6 +12,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Part Stocks'); logger.level = config.server.logLevel; @@ -74,6 +75,14 @@ export const listPartStocksByPropertiesRouteHandler = async ( res.send(result); }; +export const searchPartStocksRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: partStockModel, + search, + }); + res.send(result); +}; + export const getPartStockRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/productstocks.js b/src/services/inventory/productstocks.js index 6a2f8cd..7fbbeca 100644 --- a/src/services/inventory/productstocks.js +++ b/src/services/inventory/productstocks.js @@ -13,6 +13,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { productSkuModel } from '../../database/schemas/management/productsku.schema.js'; const logger = log4js.getLogger('Product Stocks'); @@ -80,6 +81,14 @@ export const listProductStocksByPropertiesRouteHandler = async ( res.send(result); }; +export const searchProductStocksRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: productStockModel, + search, + }); + res.send(result); +}; + export const getProductStockRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/purchaseorders.js b/src/services/inventory/purchaseorders.js index 2432f9a..353ae30 100644 --- a/src/services/inventory/purchaseorders.js +++ b/src/services/inventory/purchaseorders.js @@ -13,6 +13,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; @@ -78,6 +79,14 @@ export const listPurchaseOrdersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchPurchaseOrdersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: purchaseOrderModel, + search, + }); + res.send(result); +}; + export const getPurchaseOrderRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/shipments.js b/src/services/inventory/shipments.js index bb49a8d..c9a6692 100644 --- a/src/services/inventory/shipments.js +++ b/src/services/inventory/shipments.js @@ -13,6 +13,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Shipments'); logger.level = config.server.logLevel; @@ -76,6 +77,14 @@ export const listShipmentsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchShipmentsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: shipmentModel, + search, + }); + res.send(result); +}; + export const getShipmentRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/stockaudits.js b/src/services/inventory/stockaudits.js index db40327..815a19e 100644 --- a/src/services/inventory/stockaudits.js +++ b/src/services/inventory/stockaudits.js @@ -3,7 +3,10 @@ import { stockAuditModel } from '../../database/schemas/inventory/stockaudit.sch import log4js from 'log4js'; import mongoose from 'mongoose'; import { getAuditLogs } from '../../utils.js'; -import { getModelStats, getModelHistory } from '../../database/database.js'; +import { + getModelStats, getModelHistory, + searchObjects +} from '../../database/database.js'; const logger = log4js.getLogger('Stock Audits'); logger.level = config.server.logLevel; @@ -58,6 +61,14 @@ export const listStockAuditsRouteHandler = async ( } }; +export const searchStockAuditsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: stockAuditModel, + search, + }); + res.send(result); +}; + export const getStockAuditRouteHandler = async (req, res) => { try { const id = new mongoose.Types.ObjectId(req.params.id); diff --git a/src/services/inventory/stockevents.js b/src/services/inventory/stockevents.js index cf919d9..9a46ce0 100644 --- a/src/services/inventory/stockevents.js +++ b/src/services/inventory/stockevents.js @@ -12,6 +12,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Stock Events'); logger.level = config.server.logLevel; @@ -76,6 +77,14 @@ export const listStockEventsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchStockEventsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: stockEventModel, + search, + }); + res.send(result); +}; + export const getStockEventRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/stocklocations.js b/src/services/inventory/stocklocations.js index 5a0cc5c..69b15e2 100644 --- a/src/services/inventory/stocklocations.js +++ b/src/services/inventory/stocklocations.js @@ -12,6 +12,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Stock Locations'); @@ -73,6 +74,14 @@ export const listStockLocationsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchStockLocationsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: stockLocationModel, + search, + }); + res.send(result); +}; + export const getStockLocationRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/inventory/stocktransfers.js b/src/services/inventory/stocktransfers.js index 9d6f139..c0d9866 100644 --- a/src/services/inventory/stocktransfers.js +++ b/src/services/inventory/stocktransfers.js @@ -18,6 +18,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Stock Transfers'); @@ -305,6 +306,14 @@ export const listStockTransfersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchStockTransfersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: stockTransferModel, + search, + }); + res.send(result); +}; + export const getStockTransferRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/apppasswords.js b/src/services/management/apppasswords.js index 8e1690f..07899c5 100644 --- a/src/services/management/apppasswords.js +++ b/src/services/management/apppasswords.js @@ -13,6 +13,7 @@ import { deleteObject, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('AppPasswords'); @@ -79,6 +80,14 @@ export const listAppPasswordsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchAppPasswordsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: appPasswordModel, + search, + }); + res.send(result); +}; + export const getAppPasswordRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/auditlogs.js b/src/services/management/auditlogs.js index 029546d..bcb43e9 100644 --- a/src/services/management/auditlogs.js +++ b/src/services/management/auditlogs.js @@ -2,7 +2,10 @@ import config from '../../config.js'; import { auditLogModel } from '../../database/schemas/management/auditlog.schema.js'; import log4js from 'log4js'; import mongoose from 'mongoose'; -import { getModelStats, getModelHistory } from '../../database/database.js'; +import { + getModelStats, getModelHistory, + searchObjects +} from '../../database/database.js'; const logger = log4js.getLogger('AuditLogs'); logger.level = config.server.logLevel; @@ -64,6 +67,14 @@ export const listAuditLogsRouteHandler = async ( } }; +export const searchAuditLogsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: auditLogModel, + search, + }); + res.send(result); +}; + export const getAuditLogRouteHandler = async (req, res) => { try { // Get ID from params diff --git a/src/services/management/courier.js b/src/services/management/courier.js index 2ab8596..8937d5a 100644 --- a/src/services/management/courier.js +++ b/src/services/management/courier.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Couriers'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listCouriersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchCouriersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: courierModel, + search, + }); + res.send(result); +}; + export const getCourierRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/courierservice.js b/src/services/management/courierservice.js index 440aa47..d4b63e6 100644 --- a/src/services/management/courierservice.js +++ b/src/services/management/courierservice.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('CourierServices'); logger.level = config.server.logLevel; @@ -71,6 +72,14 @@ export const listCourierServicesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchCourierServicesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: courierServiceModel, + search, + }); + res.send(result); +}; + export const getCourierServiceRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/documentjobs.js b/src/services/management/documentjobs.js index 99e3eeb..03a2851 100644 --- a/src/services/management/documentjobs.js +++ b/src/services/management/documentjobs.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Document Jobs'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listDocumentJobsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchDocumentJobsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: documentJobModel, + search, + }); + res.send(result); +}; + export const getDocumentJobRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/documentprinters.js b/src/services/management/documentprinters.js index e07bb35..fe004eb 100644 --- a/src/services/management/documentprinters.js +++ b/src/services/management/documentprinters.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Document Templates'); logger.level = config.server.logLevel; @@ -73,6 +74,14 @@ export const listDocumentPrintersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchDocumentPrintersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: documentPrinterModel, + search, + }); + res.send(result); +}; + export const getDocumentPrinterRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/documentsizes.js b/src/services/management/documentsizes.js index 3ae9b8b..6c2cc26 100644 --- a/src/services/management/documentsizes.js +++ b/src/services/management/documentsizes.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Document Sizes'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listDocumentSizesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchDocumentSizesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: documentSizeModel, + search, + }); + res.send(result); +}; + export const getDocumentSizeRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/documenttemplates.js b/src/services/management/documenttemplates.js index 92435b0..73e8b64 100644 --- a/src/services/management/documenttemplates.js +++ b/src/services/management/documenttemplates.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Document Templates'); logger.level = config.server.logLevel; @@ -79,6 +80,14 @@ export const listDocumentTemplatesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchDocumentTemplatesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: documentTemplateModel, + search, + }); + res.send(result); +}; + export const getDocumentTemplateRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/filaments.js b/src/services/management/filaments.js index 3f7229e..3e54848 100644 --- a/src/services/management/filaments.js +++ b/src/services/management/filaments.js @@ -12,6 +12,7 @@ import { deleteObject, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Filaments'); @@ -73,6 +74,14 @@ export const listFilamentsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchFilamentsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: filamentModel, + search, + }); + res.send(result); +}; + export const getFilamentRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/filamentskus.js b/src/services/management/filamentskus.js index 7ba9667..6aff350 100644 --- a/src/services/management/filamentskus.js +++ b/src/services/management/filamentskus.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Filament SKUs'); logger.level = config.server.logLevel; @@ -73,6 +74,14 @@ export const listFilamentSkusByPropertiesRouteHandler = async ( res.send(result); }; +export const searchFilamentSkusRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: filamentSkuModel, + search, + }); + res.send(result); +}; + export const getFilamentSkuRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/files.js b/src/services/management/files.js index 617cdd6..07ce4d4 100644 --- a/src/services/management/files.js +++ b/src/services/management/files.js @@ -15,6 +15,7 @@ import { flushFile, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; import { uploadFile, @@ -95,6 +96,14 @@ export const listFilesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchFilesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: fileModel, + search, + }); + res.send(result); +}; + export const getFileRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/hosts.js b/src/services/management/hosts.js index 4b2eb00..7a9355c 100644 --- a/src/services/management/hosts.js +++ b/src/services/management/hosts.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Hosts'); logger.level = config.server.logLevel; @@ -71,6 +72,14 @@ export const listHostsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchHostsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: hostModel, + search, + }); + res.send(result); +}; + export const getHostRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/materials.js b/src/services/management/materials.js index 277c92b..33f13c3 100644 --- a/src/services/management/materials.js +++ b/src/services/management/materials.js @@ -10,6 +10,7 @@ import { newObject, getModelStats, getModelHistory, + searchObjects, } from '../../database/database.js'; const logger = log4js.getLogger('Materials'); @@ -71,6 +72,14 @@ export const listMaterialsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchMaterialsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: materialModel, + search, + }); + res.send(result); +}; + export const getMaterialRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/notetypes.js b/src/services/management/notetypes.js index de9277a..85bfb61 100644 --- a/src/services/management/notetypes.js +++ b/src/services/management/notetypes.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Note Types'); logger.level = config.server.logLevel; @@ -71,6 +72,14 @@ export const listNoteTypesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchNoteTypesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: noteTypeModel, + search, + }); + res.send(result); +}; + export const getNoteTypeRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/parts.js b/src/services/management/parts.js index 5615493..7ea3016 100644 --- a/src/services/management/parts.js +++ b/src/services/management/parts.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Parts'); logger.level = config.server.logLevel; @@ -66,6 +67,14 @@ export const listPartsByPropertiesRouteHandler = async (req, res, properties = ' res.send(result); }; +export const searchPartsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: partModel, + search, + }); + res.send(result); +}; + export const getPartRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/partskus.js b/src/services/management/partskus.js index 7ae4289..a274496 100644 --- a/src/services/management/partskus.js +++ b/src/services/management/partskus.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Part SKUs'); logger.level = config.server.logLevel; @@ -73,6 +74,14 @@ export const listPartSkusByPropertiesRouteHandler = async ( res.send(result); }; +export const searchPartSkusRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: partSkuModel, + search, + }); + res.send(result); +}; + export const getPartSkuRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/productcategories.js b/src/services/management/productcategories.js index b89b9ea..66d0040 100644 --- a/src/services/management/productcategories.js +++ b/src/services/management/productcategories.js @@ -11,6 +11,7 @@ import { listObjects, listObjectsByProperties, newObject, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('ProductCategories'); @@ -72,6 +73,14 @@ export const listProductCategoriesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchProductCategoriesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: productCategoryModel, + search, + }); + res.send(result); +}; + export const getProductCategoryRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/products.js b/src/services/management/products.js index 94ff2d6..3b63eae 100644 --- a/src/services/management/products.js +++ b/src/services/management/products.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Products'); logger.level = config.server.logLevel; @@ -71,6 +72,14 @@ export const listProductsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchProductsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: productModel, + search, + }); + res.send(result); +}; + export const getProductRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/productskus.js b/src/services/management/productskus.js index bafbfc8..27b1937 100644 --- a/src/services/management/productskus.js +++ b/src/services/management/productskus.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Product SKUs'); logger.level = config.server.logLevel; @@ -73,6 +74,14 @@ export const listProductSkusByPropertiesRouteHandler = async ( res.send(result); }; +export const searchProductSkusRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: productSkuModel, + search, + }); + res.send(result); +}; + export const getProductSkuRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/taxrates.js b/src/services/management/taxrates.js index f0c79ff..98116ce 100644 --- a/src/services/management/taxrates.js +++ b/src/services/management/taxrates.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('TaxRates'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listTaxRatesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchTaxRatesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: taxRateModel, + search, + }); + res.send(result); +}; + export const getTaxRateRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/users.js b/src/services/management/users.js index 6486fb9..278a979 100644 --- a/src/services/management/users.js +++ b/src/services/management/users.js @@ -11,6 +11,7 @@ import { editObject, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Users'); @@ -72,6 +73,14 @@ export const listUsersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchUsersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: userModel, + search, + }); + res.send(result); +}; + export const getUserRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/management/vendors.js b/src/services/management/vendors.js index 23db7f7..37cd421 100644 --- a/src/services/management/vendors.js +++ b/src/services/management/vendors.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Vendors'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listVendorsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchVendorsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: vendorModel, + search, + }); + res.send(result); +}; + export const getVendorRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/production/gcodefiles.js b/src/services/production/gcodefiles.js index 66a5924..248542d 100644 --- a/src/services/production/gcodefiles.js +++ b/src/services/production/gcodefiles.js @@ -8,6 +8,7 @@ import { listObjects, listObjectsByProperties, newObject, + searchObjects } from '../../database/database.js'; import { getFileContentRouteHandler } from '../management/files.js'; import mongoose from 'mongoose'; @@ -71,6 +72,14 @@ export const listGCodeFilesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchGCodeFilesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: gcodeFileModel, + search, + }); + res.send(result); +}; + export const getGCodeFileRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/production/jobs.js b/src/services/production/jobs.js index 7076304..a0119e9 100644 --- a/src/services/production/jobs.js +++ b/src/services/production/jobs.js @@ -10,6 +10,7 @@ import { newObject, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; import { subJobModel } from '../../database/schemas/production/subjob.schema.js'; const logger = log4js.getLogger('Jobs'); @@ -72,6 +73,14 @@ export const listJobsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchJobsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: jobModel, + search, + }); + res.send(result); +}; + export const getJobRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/production/printers.js b/src/services/production/printers.js index ef4ba17..5d694cc 100644 --- a/src/services/production/printers.js +++ b/src/services/production/printers.js @@ -10,6 +10,7 @@ import { newObject, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; import mongoose from 'mongoose'; @@ -72,6 +73,14 @@ export const listPrintersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchPrintersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: printerModel, + search, + }); + res.send(result); +}; + export const getPrinterRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/production/subjobs.js b/src/services/production/subjobs.js index 17a92c0..93deb8c 100644 --- a/src/services/production/subjobs.js +++ b/src/services/production/subjobs.js @@ -7,6 +7,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Sub Jobs'); logger.level = config.server.logLevel; @@ -68,6 +69,14 @@ export const listSubJobsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchSubJobsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: subJobModel, + search, + }); + res.send(result); +}; + export const getSubJobRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/sales/clients.js b/src/services/sales/clients.js index 92fb626..8b126bd 100644 --- a/src/services/sales/clients.js +++ b/src/services/sales/clients.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; const logger = log4js.getLogger('Clients'); logger.level = config.server.logLevel; @@ -69,6 +70,14 @@ export const listClientsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchClientsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: clientModel, + search, + }); + res.send(result); +}; + export const getClientRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/sales/listings.js b/src/services/sales/listings.js index e75895b..bc59827 100644 --- a/src/services/sales/listings.js +++ b/src/services/sales/listings.js @@ -14,6 +14,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { hasIntegration, @@ -106,6 +107,14 @@ export const listListingsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchListingsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: listingModel, + search, + }); + res.send(result); +}; + export const getListingRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/sales/listingvarients.js b/src/services/sales/listingvarients.js index 9781a39..2ce544e 100644 --- a/src/services/sales/listingvarients.js +++ b/src/services/sales/listingvarients.js @@ -12,6 +12,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { listingModel } from '../../database/schemas/sales/listing.schema.js'; import { @@ -81,6 +82,14 @@ export const listListingVarientsByPropertiesRouteHandler = async ( res.send(result); }; +export const searchListingVarientsRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: listingVarientModel, + search, + }); + res.send(result); +}; + export const getListingVarientRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/sales/marketplaces.js b/src/services/sales/marketplaces.js index dcc8b09..69db526 100644 --- a/src/services/sales/marketplaces.js +++ b/src/services/sales/marketplaces.js @@ -11,6 +11,7 @@ import { listObjectsByProperties, getModelStats, getModelHistory, + searchObjects } from '../../database/database.js'; import * as marketplaceIntegration from '../../integrations/marketplaceworker.js'; const logger = log4js.getLogger('Marketplaces'); @@ -70,6 +71,14 @@ export const listMarketplacesByPropertiesRouteHandler = async ( res.send(result); }; +export const searchMarketplacesRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: marketplaceModel, + search, + }); + res.send(result); +}; + export const getMarketplaceRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({ diff --git a/src/services/sales/salesorders.js b/src/services/sales/salesorders.js index b17c37a..6dfc731 100644 --- a/src/services/sales/salesorders.js +++ b/src/services/sales/salesorders.js @@ -13,6 +13,7 @@ import { getModelStats, getModelHistory, checkStates, + searchObjects } from '../../database/database.js'; import { orderItemModel } from '../../database/schemas/inventory/orderitem.schema.js'; import { shipmentModel } from '../../database/schemas/inventory/shipment.schema.js'; @@ -78,6 +79,14 @@ export const listSalesOrdersByPropertiesRouteHandler = async ( res.send(result); }; +export const searchSalesOrdersRouteHandler = async (req, res, search) => { + const result = await searchObjects({ + model: salesOrderModel, + search, + }); + res.send(result); +}; + export const getSalesOrderRouteHandler = async (req, res) => { const id = req.params.id; const result = await getObject({