From b29296059465ddc762e767c50d28de45f454bcb0 Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Mon, 20 Dec 2021 12:02:05 -0500 Subject: [PATCH] feat: `GET /chats/:roomId/:mid` --- src/controllers/write/chats.js | 5 +++++ src/routes/write/chats.js | 2 +- test/messaging.js | 6 +++++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/controllers/write/chats.js b/src/controllers/write/chats.js index a26cdd80a2..a4733f4045 100644 --- a/src/controllers/write/chats.js +++ b/src/controllers/write/chats.js @@ -66,6 +66,11 @@ Chats.kick = async (req, res) => { }; Chats.messages = {}; +Chats.messages.get = async (req, res) => { + const messages = await messaging.getMessagesData([req.params.mid], req.uid, req.params.roomId, false); + helpers.formatApiResponse(200, res, messages.pop()); +}; + Chats.messages.edit = async (req, res) => { await messaging.canEdit(req.params.mid, req.uid); await messaging.editMessage(req.uid, req.params.mid, req.params.roomId, req.body.message); diff --git a/src/routes/write/chats.js b/src/routes/write/chats.js index 25cd3976fe..e3717680af 100644 --- a/src/routes/write/chats.js +++ b/src/routes/write/chats.js @@ -23,7 +23,7 @@ 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, '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, 'delete', '/:roomId/:mid', [...middlewares, middleware.assert.room], controllers.write.chats.messages.delete); diff --git a/test/messaging.js b/test/messaging.js index 7078caf902..ce03a27dfa 100644 --- a/test/messaging.js +++ b/test/messaging.js @@ -657,7 +657,11 @@ describe('Messaging Library', () => { }); it('should edit message', async () => { - const { statusCode, body } = await callv3API('put', `/chats/${roomId}/${mid}`, { message: 'message edited' }, 'foo'); + let { statusCode, body } = await callv3API('put', `/chats/${roomId}/${mid}`, { message: 'message edited' }, 'foo'); + assert.strictEqual(statusCode, 200); + assert.strictEqual(body.response.content, 'message edited'); + + ({ statusCode, body } = await callv3API('get', `/chats/${roomId}/${mid}`, {}, 'foo')); assert.strictEqual(statusCode, 200); assert.strictEqual(body.response.content, 'message edited'); });