From 90fcbe4416d293a9b7c1b2769f766494cb188c20 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 20 Dec 2021 14:32:45 -0500 Subject: [PATCH] feat: middleware.assert.message --- src/middleware/assert.js | 8 ++++++++ src/routes/write/chats.js | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/middleware/assert.js b/src/middleware/assert.js index c5e8ec3402..b112bacecc 100644 --- a/src/middleware/assert.js +++ b/src/middleware/assert.js @@ -126,3 +126,11 @@ Assert.room = helpers.try(async (req, res, next) => { next(); }); + +Assert.message = helpers.try(async (req, res, next) => { + if (!isFinite(req.params.mid) || !(await messaging.messageExists(req.params.mid))) { + return controllerHelpers.formatApiResponse(400, res, new Error('[[error:invalid-mid]]')); + } + + next(); +}); diff --git a/src/routes/write/chats.js b/src/routes/write/chats.js index e3717680af..3ec6d5c3c7 100644 --- a/src/routes/write/chats.js +++ b/src/routes/write/chats.js @@ -23,8 +23,8 @@ module.exports = function () { // setupApiRoute(router, 'put', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.invite); // setupApiRoute(router, 'delete', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.kick); - setupApiRoute(router, 'get', '/:roomId/:mid', [...middlewares, middleware.assert.room], controllers.write.chats.messages.get); - setupApiRoute(router, 'put', '/:roomId/:mid', [...middlewares, middleware.assert.room], controllers.write.chats.messages.edit); + setupApiRoute(router, 'get', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.get); + setupApiRoute(router, 'put', '/:roomId/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.edit); // setupApiRoute(router, 'delete', '/:roomId/:mid', [...middlewares, middleware.assert.room], controllers.write.chats.messages.delete); return router;