delete from server working

This commit is contained in:
grimhilt
2023-05-06 14:57:55 +02:00
parent c3374a612e
commit b821c89e20
3 changed files with 71 additions and 25 deletions

View File

@@ -3,6 +3,7 @@ import { Response } from "express";
import { getMessageUid, getUserOfMailbox } from "../db/utils/mail";
import emailManager from "../mails/EmailManager";
import { deleteMessage } from "../db/message/updateMessage-db";
import logger from "../system/Logger";
export default class Message {
static async addFlag(body, res: Response) {
@@ -54,8 +55,36 @@ export default class Message {
}
static deleteRemoteOnly = async (body, res: Response) => {
body.flag = "\\Deleted";
await this.addFlag(body, res);
const { mailboxId, messageId } = 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." });
}
const mailbox = emailManager.getImap(user).getMailbox(mailboxId);
// add flag for deletion
mailbox.addFlag(uid.toString(), ["\\Deleted"])
.then(() => {
// move message to trash
mailbox.moveToTrash(uid.toString(), (err) => {
if (err) {
logger.err(err);
res.status(statusCode.METHOD_FAILURE).send({ error: err });
} else {
res.status(statusCode.OK).send();
}
});
})
.catch((err) => {
logger.log(err);
res.status(statusCode.METHOD_FAILURE).send({ error: err });
});
};
static async deleteEverywhere(body, res: Response) {