mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-06-15 22:11:17 +02:00
feat: api v3 calls to mark chat read/unread
This commit is contained in:
@@ -73,6 +73,17 @@ chatsAPI.rename = async (caller, data) => {
|
||||
});
|
||||
};
|
||||
|
||||
chatsAPI.mark = async (caller, data) => {
|
||||
const { roomId, state } = data;
|
||||
if (state) {
|
||||
await messaging.markUnread([caller.uid], roomId);
|
||||
} else {
|
||||
await messaging.markRead(caller.uid, roomId);
|
||||
}
|
||||
|
||||
return messaging.loadRoom(caller.uid, { roomId });
|
||||
};
|
||||
|
||||
chatsAPI.users = async (caller, data) => {
|
||||
const [isOwner, users] = await Promise.all([
|
||||
messaging.isRoomOwner(caller.uid, data.roomId),
|
||||
|
||||
@@ -53,6 +53,17 @@ Chats.rename = async (req, res) => {
|
||||
helpers.formatApiResponse(200, res, roomObj);
|
||||
};
|
||||
|
||||
Chats.mark = async (req, res) => {
|
||||
const state = req.method === 'PUT' ? 1 : 0;
|
||||
const roomObj = await api.chats.mark(req, {
|
||||
...req.body,
|
||||
roomId: req.params.roomId,
|
||||
state,
|
||||
});
|
||||
|
||||
helpers.formatApiResponse(200, res, roomObj);
|
||||
};
|
||||
|
||||
Chats.users = async (req, res) => {
|
||||
const users = await api.chats.users(req, {
|
||||
...req.params,
|
||||
|
||||
@@ -19,6 +19,9 @@ module.exports = function () {
|
||||
setupApiRoute(router, 'put', '/:roomId', [...middlewares, middleware.assert.room, middleware.checkRequired.bind(null, ['name'])], controllers.write.chats.rename);
|
||||
// no route for room deletion, noted here just in case...
|
||||
|
||||
setupApiRoute(router, 'put', '/:roomId/state', [...middlewares, middleware.assert.room], controllers.write.chats.mark);
|
||||
setupApiRoute(router, 'delete', '/:roomId/state', [...middlewares, middleware.assert.room], controllers.write.chats.mark);
|
||||
|
||||
setupApiRoute(router, 'get', '/:roomId/users', [...middlewares, middleware.assert.room], controllers.write.chats.users);
|
||||
setupApiRoute(router, 'post', '/: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);
|
||||
|
||||
Reference in New Issue
Block a user