From 66b8f6bd5400fb3f8491a7feb219c571373e9b44 Mon Sep 17 00:00:00 2001 From: Alma Date: Thu, 10 Apr 2025 00:13:18 +0200 Subject: [PATCH] update widget token mail 16 --- app/api/rocket-chat/messages/route.ts | 29 ++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/app/api/rocket-chat/messages/route.ts b/app/api/rocket-chat/messages/route.ts index ce6c71ae..9d2d3655 100644 --- a/app/api/rocket-chat/messages/route.ts +++ b/app/api/rocket-chat/messages/route.ts @@ -131,9 +131,18 @@ export async function GET() { return null; } + // Choose the appropriate endpoint based on room type + const endpoint = subscription.t === 'd' + ? 'im.messages' + : subscription.t === 'c' + ? 'channels.messages' + : 'groups.messages'; + + console.log(`Fetching messages for room ${subscription.name} using endpoint ${endpoint}`); + // Get the most recent messages from the room const messagesResponse = await fetch( - `https://parole.slm-lab.net/api/v1/rooms.get?roomId=${subscription.rid}`, + `https://parole.slm-lab.net/api/v1/${endpoint}?roomId=${subscription.rid}&count=1`, { headers: { 'X-Auth-Token': ROCKET_CHAT_TOKEN, @@ -144,25 +153,31 @@ export async function GET() { ); if (!messagesResponse.ok) { - console.error('Failed to fetch room info:', { + console.error('Failed to fetch messages:', { roomId: subscription.rid, + endpoint, status: messagesResponse.status, response: await messagesResponse.text().catch(() => 'Could not get response text') }); return null; } - const roomData = await messagesResponse.json(); + const messagesData = await messagesResponse.json(); + console.log(`Messages response for ${subscription.name}:`, { + count: messagesData.messages?.length, + success: messagesData.success + }); - if (roomData.room?.lastMessage) { + if (messagesData.messages && messagesData.messages.length > 0) { + const message = messagesData.messages[0]; return { - ...roomData.room.lastMessage, - roomName: subscription.name || roomData.room.fname || 'Direct Message', + ...message, + roomName: subscription.fname || subscription.name || 'Direct Message', roomType: subscription.t, }; } - console.log('No last message found for room:', subscription.rid); + console.log('No messages found for room:', subscription.rid); return null; } catch (error) { console.error('Error processing room:', subscription.rid, error);