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"; import Room from "../mails/room/Room";
export default class MessageAbl { export default class MessageAbl {
static async addFlag(body, res: Response) { static async changeFlag(body, res: Response, isDelete: boolean) {
const { mailboxId, messageId, flag } = body; const { mailboxId, messageId, flag } = body;
const uid = (await getMessageUid(messageId))[0]?.uid; const message = new Message().setMessageId(messageId);
if (!uid) {
try {
await message.useUid();
} catch (err) {
res.status(statusCode.NOT_FOUND).send({ error: "Message uid not found." }); res.status(statusCode.NOT_FOUND).send({ error: "Message uid not found." });
} }
const user = (await getUserOfMailbox(mailboxId))[0]?.user; try {
if (!user) { await message.useMailbox(mailboxId);
} catch (err) {
res.status(statusCode.NOT_FOUND).send({ error: "Not account for this mailbox." }); res.status(statusCode.NOT_FOUND).send({ error: "Not account for this mailbox." });
} }
emailManager
.getImap(user) try {
.getMailbox(mailboxId) if (isDelete) {
.addFlag(uid.toString(), [flag]) await message.mailbox.removeFlag(message.uid.toString(), flag);
.then(() => { } else {
res.status(statusCode.OK).send(); await message.mailbox.addFlag(message.uid.toString(), flag);
}) }
.catch((err) => { } catch (err) {
console.log(err); res.status(statusCode.METHOD_FAILURE).send({ error: 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) { static async removeFlag(body, res: Response) {
const { mailboxId, messageId, flag } = body; await MessageAbl.changeFlag(body, res, true);
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 });
});
} }
static deleteRemoteOnly = async (body, res: Response) => { 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) { export async function updateMailboxSeen(messageId: number, isSeen: boolean) {
const query = `UPDATE mailbox_message SET seen = ? WHERE message_id = ?`; const query = `UPDATE mailbox_message SET seen = ? WHERE message_id = ?`;
const values = [messageId, isSeen]; const values = [isSeen, messageId];
return await execQueryAsync(query, values); return await execQueryAsync(query, values);
} }

View File

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

View File

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