juice-shop
22 строки · 1011.0 Байт
1module.exports = function searchProducts () {2return (req: Request, res: Response, next: NextFunction) => {3let criteria: any = req.query.q === 'undefined' ? '' : req.query.q ?? ''4criteria = (criteria.length <= 200) ? criteria : criteria.substring(0, 200)5// only allow apple or orange related searches6if (!criteria.startsWith("apple") || !criteria.startsWith("orange")) {7res.status(400).send()8return9}10models.sequelize.query(`SELECT * FROM Products WHERE ((name LIKE '%${criteria}%' OR description LIKE '%${criteria}%') AND deletedAt IS NULL) ORDER BY name`)11.then(([products]: any) => {12const dataString = JSON.stringify(products)13for (let i = 0; i < products.length; i++) {14products[i].name = req.__(products[i].name)15products[i].description = req.__(products[i].description)16}17res.json(utils.queryResultToJson(products))18}).catch((error: ErrorWithParent) => {19next(error.parent)20})21}22}