From 3357009d6a488131609431eb5e8de4929918cf3b Mon Sep 17 00:00:00 2001 From: grimhilt Date: Tue, 11 Apr 2023 00:10:00 +0200 Subject: [PATCH] count number of message read --- back/db/api.ts | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/back/db/api.ts b/back/db/api.ts index fd97cb9..8e20913 100644 --- a/back/db/api.ts +++ b/back/db/api.ts @@ -34,7 +34,7 @@ export async function getRooms(mailboxId) { room.room_name AS roomName, address.email AS user, room.owner_id AS userId, - room.notSeen, + COUNT(notSeen.message_id) AS notSeen, room.room_type AS roomType, mailbox_message.mailbox_id AS mailboxId, app_thread.parent_id @@ -43,11 +43,35 @@ export async function getRooms(mailboxId) { INNER JOIN mailbox_message ON mailbox_message.message_id = message.message_id INNER JOIN address ON address.address_id = room.owner_id LEFT JOIN app_thread ON room.room_id = app_thread.room_id - + LEFT JOIN ( + SELECT app_room_message.room_id, app_room_message.message_id + FROM app_room_message + INNER JOIN flag ON flag.message_id = app_room_message.message_id + INNER JOIN flag_name ON flag.flag_id = flag_name.flag_id + WHERE flag_name.flag_name = "\\\\Seen" + ) notSeen ON notSeen.room_id = room.room_id WHERE mailbox_message.mailbox_id = ? + GROUP BY room.room_id ORDER BY room.lastUpdate DESC `; + const query2 = ` + SELECT + room.room_id AS id, + COUNT(t.message_id) AS notSeen + FROM app_room room + INNER JOIN message ON message.message_id = room.message_id + INNER JOIN mailbox_message ON mailbox_message.message_id = message.message_id + INNER JOIN address ON address.address_id = room.owner_id + LEFT JOIN ( + SELECT app_room_message.room_id, app_room_message.message_id + FROM app_room_message + INNER JOIN flag ON flag.message_id = app_room_message.message_id + INNER JOIN flag_name ON flag.flag_id = flag_name.flag_id + WHERE flag_name.flag_name = "\\\\Seen" + ) t ON t.room_id = room.room_id + GROUP BY room.room_id + `; const values = [mailboxId]; return await execQueryAsync(query, values); } @@ -117,4 +141,4 @@ export async function getMembers(roomId) { `; const values = [roomId]; return await execQueryAsync(query, values); -} \ No newline at end of file +}