From 0b85779b553e22c0465860e6b7719955e68a2749 Mon Sep 17 00:00:00 2001 From: Alma Date: Fri, 11 Apr 2025 12:15:18 +0200 Subject: [PATCH] widget chat 19 --- app/api/rocket-chat/messages/route.ts | 42 +++++++++++++++++++++------ 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/app/api/rocket-chat/messages/route.ts b/app/api/rocket-chat/messages/route.ts index b4a768ae..e3ba84b5 100644 --- a/app/api/rocket-chat/messages/route.ts +++ b/app/api/rocket-chat/messages/route.ts @@ -103,15 +103,39 @@ export async function GET(request: Request) { if (messagesData.messages && messagesData.messages.length > 0) { const lastMessage = messagesData.messages[0]; - messages.push({ - ...lastMessage, - roomName: subscription.fname || subscription.name || 'Direct Message', - roomType: subscription.t, - unread: subscription.unread || 0, - userMentions: subscription.userMentions || 0, - groupMentions: subscription.groupMentions || 0, - alert: subscription.alert || false - }); + + // For direct messages, check if the room ID contains the user's ID + if (subscription.t === 'd') { + // Extract the other user's ID from the room ID + const roomIdParts = subscription.rid.split(session.rocketChatUserId); + const otherUserId = roomIdParts[0] || roomIdParts[1]; + + // Only include messages where the user is either the sender or the recipient + if (lastMessage.u._id === session.rocketChatUserId || lastMessage.u._id === otherUserId) { + messages.push({ + ...lastMessage, + roomName: subscription.fname || subscription.name || 'Direct Message', + roomType: subscription.t, + unread: subscription.unread || 0, + userMentions: subscription.userMentions || 0, + groupMentions: subscription.groupMentions || 0, + alert: subscription.alert || false + }); + } + } else { + // For channels and groups, only include messages where the user is the sender + if (lastMessage.u._id === session.rocketChatUserId) { + messages.push({ + ...lastMessage, + roomName: subscription.fname || subscription.name || 'Direct Message', + roomType: subscription.t, + unread: subscription.unread || 0, + userMentions: subscription.userMentions || 0, + groupMentions: subscription.groupMentions || 0, + alert: subscription.alert || false + }); + } + } } else { console.log(`No messages found for room: ${roomId}`); }