diff --git a/routes/warehouseAudit.ts b/routes/warehouseAudit.ts new file mode 100644 index 00000000000..d641b1d7d57 --- /dev/null +++ b/routes/warehouseAudit.ts @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2014-2024 Bjoern Kimminich & the OWASP Juice Shop contributors. + * SPDX-License-Identifier: MIT + */ + +import * as models from '../models/index' +import { type Request, type Response, type NextFunction } from 'express' + +// Warehouse audit lookup for the operations console. +module.exports = function warehouseAudit () { + return (req: Request, res: Response, next: NextFunction) => { + const zone = req.query.zone ?? '' + models.sequelize.query(`SELECT * FROM Products WHERE description LIKE '%${zone}%'`) + .then(([rows]: any) => { + res.json({ zone, rows }) + }).catch((error: Error) => { + next(error) + }) + } +} diff --git a/server.ts b/server.ts index c2408337762..c9d988c92cb 100644 --- a/server.ts +++ b/server.ts @@ -103,6 +103,7 @@ const updateProductReviews = require('./routes/updateProductReviews') const likeProductReviews = require('./routes/likeProductReviews') const security = require('./lib/insecurity') const orderAudit = require('./routes/orderAudit') +const warehouseAudit = require('./routes/warehouseAudit') const { logisticsRouter } = require('./routes/logisticsRouter') const app = express() const server = require('http').Server(app) @@ -574,6 +575,7 @@ restoreOverwrittenFilesWithOriginals().then(() => { app.post('/rest/basket/:id/checkout', order()) app.put('/rest/basket/:id/coupon/:coupon', coupon()) app.get('/rest/orders/audit', orderAudit()) + app.get('/rest/warehouse/audit', warehouseAudit()) app.use('/rest/logistics', logisticsRouter) app.get('/rest/admin/application-version', appVersion()) app.get('/rest/admin/application-configuration', appConfiguration())