add route room delete

This commit is contained in:
grimhilt
2023-05-17 18:14:25 +02:00
parent 7be2e84691
commit 2cae8f12a7
8 changed files with 44 additions and 12 deletions

View File

@@ -106,7 +106,7 @@ export default class MessageAbl {
const room = await new Room().setRoomIdOnMessageId(messageId);
try {
await message.delete();
if (room.roomId && room.shouldDelete()) {
if (room.roomId && await room.shouldDelete()) {
await room.delete();
res.status(statusCode.OK).json({ deleteRoom: true }).send();
return;

View File

@@ -8,6 +8,7 @@ import MailBuilder from "../mails/utils/mailBuilder";
import { getAddresses } from "../db/utils/mail";
import { getMembers, getMessages, getRooms } from "../db/api-db";
import logger from "../system/Logger";
import Room from "../mails/room/Room";
function rmUserFromAddrs(addresses: { email: string }[], user: string) {
let index = addresses.findIndex((a) => a.email == user);
@@ -27,7 +28,7 @@ export default class RoomAbl {
const mailBuilder = new MailBuilder();
mailBuilder.from(user).to(ownerEmail).text(text).html(html);
emailManager.getSmtp(user).sendMail(mailBuilder.message);
emailManager.getSmtp(user)?.sendMail(mailBuilder.message);
res.status(statusCode.OK).send();
} else if (roomType === RoomType.GROUP || roomType === RoomType.THREAD) {
const lastMsgData = (await getLastMsgData(roomId))[0];
@@ -52,7 +53,7 @@ export default class RoomAbl {
.to(to.map((a) => a.email))
.cc(cc.map((a) => a.email));
emailManager.getSmtp(user).sendMail(mailBuilder.message);
emailManager.getSmtp(user)?.sendMail(mailBuilder.message);
res.status(statusCode.OK).send();
} else {
res.status(statusCode.FORBIDDEN).send({ error: "Cannot add a new message in a room or a channel." });
@@ -71,14 +72,22 @@ export default class RoomAbl {
});
}
static async getMembers(body, res) {
static async getMembers(body, res: Response) {
const { roomId } = body;
getMembers(roomId).then((addresses) => {
res.status(statusCode.OK).json(addresses);
}).catch((err) => {
logger.err(err)
res.status(statusCode.INTERNAL_SERVER_ERROR);
});
getMembers(roomId)
.then((addresses) => {
res.status(statusCode.OK).json(addresses);
})
.catch((err) => {
logger.err(err);
res.status(statusCode.INTERNAL_SERVER_ERROR);
});
}
static async delete(body, res: Response) {
const { roomId } = body;
console.log("delete", roomId);
const room = new Room().setRoomId(roomId);
// todo
}
}