fix errors and beautify with use of class

This commit is contained in:
grimhilt 2023-05-07 23:42:44 +02:00
parent f7c95b3a36
commit ffcfc57bbe
4 changed files with 31 additions and 49 deletions

View File

@ -7,52 +7,40 @@ import Message from "../mails/message/Message";
import Room from "../mails/room/Room";
export default class MessageAbl {
static async addFlag(body, res: Response) {
static async changeFlag(body, res: Response, isDelete: boolean) {
const { mailboxId, messageId, flag } = body;
const uid = (await getMessageUid(messageId))[0]?.uid;
if (!uid) {
const message = new Message().setMessageId(messageId);
try {
await message.useUid();
} catch (err) {
res.status(statusCode.NOT_FOUND).send({ error: "Message uid not found." });
}
const user = (await getUserOfMailbox(mailboxId))[0]?.user;
if (!user) {
try {
await message.useMailbox(mailboxId);
} catch (err) {
res.status(statusCode.NOT_FOUND).send({ error: "Not account for this mailbox." });
}
emailManager
.getImap(user)
.getMailbox(mailboxId)
.addFlag(uid.toString(), [flag])
.then(() => {
res.status(statusCode.OK).send();
})
.catch((err) => {
console.log(err);
try {
if (isDelete) {
await message.mailbox.removeFlag(message.uid.toString(), flag);
} else {
await message.mailbox.addFlag(message.uid.toString(), flag);
}
} catch (err) {
res.status(statusCode.METHOD_FAILURE).send({ error: err });
});
}
res.status(statusCode.OK).send();
}
static async addFlag(body, res: Response) {
await MessageAbl.changeFlag(body, res, false);
}
static async removeFlag(body, res: Response) {
const { mailboxId, messageId, flag } = body;
const uid = (await getMessageUid(messageId))[0]?.uid;
if (!uid) {
res.status(statusCode.NOT_FOUND).send({ error: "Message uid not found." });
}
const user = (await getUserOfMailbox(mailboxId))[0]?.user;
if (!user) {
res.status(statusCode.NOT_FOUND).send({ error: "Not account for this mailbox." });
}
emailManager
.getImap(user)
.getMailbox(mailboxId)
.removeFlag(uid.toString(), [flag])
.then(() => {
res.status(statusCode.OK).send();
})
.catch((err) => {
console.log(err);
res.status(statusCode.METHOD_FAILURE).send({ error: err });
});
await MessageAbl.changeFlag(body, res, true);
}
static deleteRemoteOnly = async (body, res: Response) => {

View File

@ -19,7 +19,7 @@ export async function deleteFlag(messageId: number, flagId: number) {
export async function updateMailboxSeen(messageId: number, isSeen: boolean) {
const query = `UPDATE mailbox_message SET seen = ? WHERE message_id = ?`;
const values = [messageId, isSeen];
const values = [isSeen, messageId];
return await execQueryAsync(query, values);
}

View File

@ -1,22 +1,17 @@
import { getFlagsOnId, getFlagsOnUid } from "../../db/message/message-db";
import { deleteMessage, getFlags } from "../../db/message/updateMessage-db";
import { deleteMessage } from "../../db/message/updateMessage-db";
import { getMessageUid, getUserOfMailbox } from "../../db/utils/mail";
import emailManager from "../EmailManager";
import Mailbox from "../imap/Mailbox";
import Room from "../room/Room";
export default class Message extends Room {
export default class Message {
messageId: number;
uid: number;
private _flags: string[] | undefined;
private _mailbox: Mailbox;
constructor() {
super();
this.messageId;
this.flags;
this._mailbox;
}
constructor() {}
setMessageId(messageId: number): Message {
this.messageId = messageId;

View File

@ -2,9 +2,8 @@ import { deleteRoom, getRoomNbMessageAndThread, getRoomOnMessageId } from "../..
export default class Room {
private _roomId: number;
constructor() {
this._roomId;
}
constructor() {}
setRoomId(roomId: number): Room {
this._roomId = roomId;