mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-05-06 04:17:03 +02:00
feat: DELETE /api/v3/chats/:roomId/users and DELETE /api/v3/chats/:roomId/users/:uid
This commit is contained in:
@@ -101,3 +101,15 @@ chatsAPI.invite = async (caller, data) => {
|
||||
delete data.uids;
|
||||
return chatsAPI.users(caller, data);
|
||||
};
|
||||
|
||||
chatsAPI.kick = async (caller, data) => {
|
||||
const uidsExist = await user.exists(data.uids);
|
||||
if (!uidsExist.every(Boolean)) {
|
||||
throw new Error('[[error:no-user]]');
|
||||
}
|
||||
|
||||
await messaging.removeUsersFromRoom(caller.uid, data.uids, data.roomId);
|
||||
|
||||
delete data.uids;
|
||||
return chatsAPI.users(caller, data);
|
||||
};
|
||||
|
||||
@@ -70,7 +70,22 @@ Chats.invite = async (req, res) => {
|
||||
};
|
||||
|
||||
Chats.kick = async (req, res) => {
|
||||
// ...
|
||||
const users = await api.chats.kick(req, {
|
||||
...req.body,
|
||||
roomId: req.params.roomId,
|
||||
});
|
||||
|
||||
helpers.formatApiResponse(200, res, users);
|
||||
};
|
||||
|
||||
Chats.kickUser = async (req, res) => {
|
||||
req.body.uids = [req.params.uid];
|
||||
const users = await api.chats.kick(req, {
|
||||
...req.body,
|
||||
roomId: req.params.roomId,
|
||||
});
|
||||
|
||||
helpers.formatApiResponse(200, res, users);
|
||||
};
|
||||
|
||||
Chats.messages = {};
|
||||
|
||||
@@ -21,7 +21,8 @@ module.exports = function () {
|
||||
|
||||
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);
|
||||
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/: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);
|
||||
|
||||
@@ -117,15 +117,17 @@ SocketModules.chats.addUserToRoom = async function (socket, data) {
|
||||
};
|
||||
|
||||
SocketModules.chats.removeUserFromRoom = async function (socket, data) {
|
||||
sockets.warnDeprecated(socket, 'DELETE /api/v3/chats/:roomId/users OR DELETE /api/v3/chats/:roomId/users/:uid');
|
||||
|
||||
if (!data || !data.roomId) {
|
||||
throw new Error('[[error:invalid-data]]');
|
||||
}
|
||||
const exists = await user.exists(data.uid);
|
||||
if (!exists) {
|
||||
throw new Error('[[error:no-user]]');
|
||||
}
|
||||
|
||||
await Messaging.removeUsersFromRoom(socket.uid, [data.uid], data.roomId);
|
||||
// Revised API can accept multiple uids now
|
||||
data.uids = [data.uid];
|
||||
delete data.uid;
|
||||
|
||||
await api.chats.kick(socket, data);
|
||||
};
|
||||
|
||||
SocketModules.chats.leave = async function (socket, roomid) {
|
||||
|
||||
Reference in New Issue
Block a user