From 50eacb3974da5f8984c17dae8c8ec2fccc054054 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Sat, 4 Jul 2026 16:48:50 +0100 Subject: [PATCH] Added text indexes to various schemas for improved search capabilities across finance, inventory, and management modules. Updated route handlers to include search functionality for invoices, payments, tax records, and inventory items, enhancing data retrieval efficiency. --- src/database/schemas/finance/invoice.schema.js | 2 ++ src/database/schemas/finance/payment.schema.js | 2 ++ src/database/schemas/finance/taxrecord.schema.js | 2 ++ .../schemas/inventory/filamentstock.schema.js | 2 ++ src/database/schemas/inventory/orderitem.schema.js | 2 ++ src/database/schemas/inventory/partstock.schema.js | 2 ++ .../schemas/inventory/productstock.schema.js | 2 ++ .../schemas/inventory/purchaseorder.schema.js | 2 ++ src/database/schemas/inventory/shipment.schema.js | 2 ++ src/database/schemas/inventory/stockaudit.schema.js | 2 ++ src/database/schemas/inventory/stockevent.schema.js | 2 ++ .../schemas/inventory/stocklocation.schema.js | 2 ++ .../schemas/inventory/stocktransfer.schema.js | 2 ++ .../schemas/management/apppassword.schema.js | 2 ++ src/database/schemas/management/auditlog.schema.js | 2 ++ src/database/schemas/management/courier.schema.js | 2 ++ .../schemas/management/courierservice.schema.js | 2 ++ .../schemas/management/documentjob.schema.js | 2 ++ .../schemas/management/documentprinter.schema.js | 2 ++ .../schemas/management/documentsize.schema.js | 2 ++ .../schemas/management/documenttemplate.schema.js | 2 ++ src/database/schemas/management/filament.schema.js | 2 ++ .../schemas/management/filamentsku.schema.js | 2 ++ src/database/schemas/management/file.schema.js | 2 ++ src/database/schemas/management/host.schema.js | 2 ++ src/database/schemas/management/material.schema.js | 2 ++ src/database/schemas/management/notetype.schema.js | 2 ++ src/database/schemas/management/part.schema.js | 2 ++ src/database/schemas/management/partsku.schema.js | 2 ++ src/database/schemas/management/product.schema.js | 3 +++ .../schemas/management/productcategory.schema.js | 2 ++ .../schemas/management/productsku.schema.js | 2 ++ src/database/schemas/management/taxrate.schema.js | 2 ++ src/database/schemas/management/user.schema.js | 2 ++ src/database/schemas/management/vendor.schema.js | 2 ++ src/database/schemas/production/gcodefile.schema.js | 2 +- src/database/schemas/production/job.schema.js | 2 ++ src/database/schemas/production/printer.schema.js | 2 ++ src/database/schemas/production/subjob.schema.js | 2 ++ src/database/schemas/sales/client.schema.js | 2 ++ src/database/schemas/sales/listing.schema.js | 2 ++ src/database/schemas/sales/listingvarient.schema.js | 2 ++ src/database/schemas/sales/marketplace.schema.js | 2 ++ src/database/schemas/sales/salesorder.schema.js | 2 ++ src/routes/finance/invoices.js | 6 ++++++ src/routes/finance/payments.js | 6 ++++++ src/routes/finance/taxrecords.js | 6 ++++++ src/routes/inventory/filamentstocks.js | 6 ++++++ src/routes/inventory/orderitems.js | 6 ++++++ src/routes/inventory/partstocks.js | 6 ++++++ src/routes/inventory/productstocks.js | 6 ++++++ src/routes/inventory/purchaseorders.js | 6 ++++++ src/routes/inventory/shipments.js | 6 ++++++ src/routes/inventory/stockaudits.js | 6 ++++++ src/routes/inventory/stockevents.js | 6 ++++++ src/routes/inventory/stocklocations.js | 6 ++++++ src/routes/inventory/stocktransfers.js | 6 ++++++ src/routes/management/apppasswords.js | 6 ++++++ src/routes/management/auditlogs.js | 6 ++++++ src/routes/management/courier.js | 6 ++++++ src/routes/management/courierservice.js | 6 ++++++ src/routes/management/documentjobs.js | 6 ++++++ src/routes/management/documentprinters.js | 6 ++++++ src/routes/management/documentsizes.js | 6 ++++++ src/routes/management/documenttemplates.js | 6 ++++++ src/routes/management/filaments.js | 6 ++++++ src/routes/management/filamentskus.js | 6 ++++++ src/routes/management/files.js | 6 ++++++ src/routes/management/hosts.js | 6 ++++++ src/routes/management/materials.js | 6 ++++++ src/routes/management/notetypes.js | 6 ++++++ src/routes/management/parts.js | 6 ++++++ src/routes/management/partskus.js | 6 ++++++ src/routes/management/productcategories.js | 6 ++++++ src/routes/management/products.js | 6 ++++++ src/routes/management/productskus.js | 6 ++++++ src/routes/management/taxrates.js | 6 ++++++ src/routes/management/users.js | 6 ++++++ src/routes/management/vendors.js | 6 ++++++ src/routes/production/gcodefiles.js | 6 ++++++ src/routes/production/jobs.js | 6 ++++++ src/routes/production/printers.js | 6 ++++++ src/routes/production/subjobs.js | 6 ++++++ src/routes/sales/clients.js | 6 ++++++ src/routes/sales/listings.js | 6 ++++++ src/routes/sales/listingvarients.js | 6 ++++++ src/routes/sales/marketplaces.js | 6 ++++++ src/routes/sales/salesorders.js | 6 ++++++ src/services/finance/invoices.js | 9 +++++++++ src/services/finance/payments.js | 9 +++++++++ src/services/finance/taxrecords.js | 9 +++++++++ src/services/inventory/filamentstocks.js | 9 +++++++++ src/services/inventory/orderitems.js | 9 +++++++++ src/services/inventory/partstocks.js | 9 +++++++++ src/services/inventory/productstocks.js | 9 +++++++++ src/services/inventory/purchaseorders.js | 9 +++++++++ src/services/inventory/shipments.js | 9 +++++++++ src/services/inventory/stockaudits.js | 13 ++++++++++++- src/services/inventory/stockevents.js | 9 +++++++++ src/services/inventory/stocklocations.js | 9 +++++++++ src/services/inventory/stocktransfers.js | 9 +++++++++ src/services/management/apppasswords.js | 9 +++++++++ src/services/management/auditlogs.js | 13 ++++++++++++- src/services/management/courier.js | 9 +++++++++ src/services/management/courierservice.js | 9 +++++++++ src/services/management/documentjobs.js | 9 +++++++++ src/services/management/documentprinters.js | 9 +++++++++ src/services/management/documentsizes.js | 9 +++++++++ src/services/management/documenttemplates.js | 9 +++++++++ src/services/management/filaments.js | 9 +++++++++ src/services/management/filamentskus.js | 9 +++++++++ src/services/management/files.js | 9 +++++++++ src/services/management/hosts.js | 9 +++++++++ src/services/management/materials.js | 9 +++++++++ src/services/management/notetypes.js | 9 +++++++++ src/services/management/parts.js | 9 +++++++++ src/services/management/partskus.js | 9 +++++++++ src/services/management/productcategories.js | 9 +++++++++ src/services/management/products.js | 9 +++++++++ src/services/management/productskus.js | 9 +++++++++ src/services/management/taxrates.js | 9 +++++++++ src/services/management/users.js | 9 +++++++++ src/services/management/vendors.js | 9 +++++++++ src/services/production/gcodefiles.js | 9 +++++++++ src/services/production/jobs.js | 9 +++++++++ src/services/production/printers.js | 9 +++++++++ src/services/production/subjobs.js | 9 +++++++++ src/services/sales/clients.js | 9 +++++++++ src/services/sales/listings.js | 9 +++++++++ src/services/sales/listingvarients.js | 9 +++++++++ src/services/sales/marketplaces.js | 9 +++++++++ src/services/sales/salesorders.js | 9 +++++++++ 132 files changed, 754 insertions(+), 3 deletions(-) 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({