diff --git a/src/controllers/api/inboxController.ts b/src/controllers/api/inboxController.ts index 30d3e001..d604f253 100644 --- a/src/controllers/api/inboxController.ts +++ b/src/controllers/api/inboxController.ts @@ -1,6 +1,12 @@ import { RequestHandler } from "express"; import { Inbox } from "@/src/models/inboxModel"; -import { createNewEventMessages, getAllMessagesSorted, getMessage } from "@/src/services/inboxService"; +import { + createNewEventMessages, + deleteAllMessagesRead, + deleteMessageRead, + getAllMessagesSorted, + getMessage +} from "@/src/services/inboxService"; import { getAccountIdForRequest } from "@/src/services/loginService"; import { addItems, getInventory } from "@/src/services/inventoryService"; import { logger } from "@/src/utils/logger"; @@ -12,12 +18,12 @@ export const inboxController: RequestHandler = async (req, res) => { if (deleteId) { if (deleteId === "DeleteAllRead") { - await Inbox.deleteMany({ ownerId: accountId, r: true }); + await deleteAllMessagesRead(accountId); res.status(200).end(); return; } - await Inbox.findOneAndDelete({ _id: deleteId, r: true }); + await deleteMessageRead(deleteId as string); res.status(200).end(); } else if (messageId) { const message = await getMessage(messageId as string); @@ -71,6 +77,7 @@ export const inboxController: RequestHandler = async (req, res) => { //newly created event messages must be newer than account.LatestEventMessageDate await createNewEventMessages(req); const messages = await getAllMessagesSorted(accountId); - res.json({ Inbox: messages }); + const inbox = messages.map(m => m.toJSON()); + res.json({ Inbox: inbox }); } }; diff --git a/src/services/inboxService.ts b/src/services/inboxService.ts index 09c7a3d6..81cc443e 100644 --- a/src/services/inboxService.ts +++ b/src/services/inboxService.ts @@ -5,9 +5,9 @@ import { Request } from "express"; import messages from "@/static/fixed_responses/messages.json"; import { logger } from "@/src/utils/logger"; -export const getAllMessagesSorted = async (accountId: string): Promise => { +export const getAllMessagesSorted = async (accountId: string): Promise[]> => { const inbox = await Inbox.find({ ownerId: accountId }).sort({ date: -1 }); - return inbox.map(message => message.toJSON()); + return inbox; }; export const getMessage = async (messageId: string): Promise> => { @@ -19,11 +19,11 @@ export const getMessage = async (messageId: string): Promise => { - await Inbox.findOneAndDelete({ _id: messageId }); +export const deleteMessageRead = async (messageId: string): Promise => { + await Inbox.findOneAndDelete({ _id: messageId, r: true }); }; -export const deleteAllMessages = async (accountId: string): Promise => { +export const deleteAllMessagesRead = async (accountId: string): Promise => { await Inbox.deleteMany({ ownerId: accountId, r: true }); };