feat: GET /api/v3/chats/:roomId/messages

This commit is contained in:
Julian Lam
2021-12-22 15:19:37 -05:00
parent d95b4ee29a
commit 2fe53cf849
6 changed files with 75 additions and 9 deletions

View File

@@ -89,6 +89,18 @@ Chats.kickUser = async (req, res) => {
};
Chats.messages = {};
Chats.messages.list = async (req, res) => {
const messages = await messaging.getMessages({
callerUid: req.uid,
uid: req.query.uid || req.uid,
roomId: req.params.roomId,
start: parseInt(req.query.start, 10) || 0,
count: 50,
});
helpers.formatApiResponse(200, res, { 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());

View File

@@ -24,6 +24,7 @@ module.exports = function () {
setupApiRoute(router, 'delete', '/:roomId/users', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['uids'])], controllers.write.chats.kick);
setupApiRoute(router, 'delete', '/:roomId/users/:uid', [...middlewares, middleware.assert.room, middleware.assert.user], controllers.write.chats.kickUser);
setupApiRoute(router, 'get', '/:roomId/messages', [...middlewares, middleware.assert.room], controllers.write.chats.messages.list);
setupApiRoute(router, 'get', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.get);
setupApiRoute(router, 'put', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.edit);
setupApiRoute(router, 'post', '/:roomId/messages/:mid', [...middlewares, middleware.assert.room, middleware.assert.message], controllers.write.chats.messages.restore);

View File

@@ -232,6 +232,8 @@ SocketModules.chats.hasPrivateChat = async function (socket, uid) {
};
SocketModules.chats.getMessages = async function (socket, data) {
sockets.warnDeprecated(socket, 'GET /api/v3/chats/:roomId/messages');
if (!socket.uid || !data || !data.uid || !data.roomId) {
throw new Error('[[error:invalid-data]]');
}