diff --git a/app/api/rocket-chat/messages/route.ts b/app/api/rocket-chat/messages/route.ts index 84437f9f..4b896761 100644 --- a/app/api/rocket-chat/messages/route.ts +++ b/app/api/rocket-chat/messages/route.ts @@ -98,15 +98,15 @@ export async function GET(request: Request) { id: currentUser._id }); - // Step 3: Use admin token to get messages + // Step 3: Use admin token for all requests const userHeaders = { 'X-Auth-Token': process.env.ROCKET_CHAT_TOKEN!, 'X-User-Id': process.env.ROCKET_CHAT_USER_ID!, 'Content-Type': 'application/json' }; - // Step 4: Get user's subscriptions using admin token - const subscriptionsResponse = await fetch(`${baseUrl}/api/v1/subscriptions.get?userId=${currentUser._id}`, { + // Step 4: Get user's subscriptions + const subscriptionsResponse = await fetch(`${baseUrl}/api/v1/subscriptions.get`, { method: 'GET', headers: userHeaders }); @@ -119,13 +119,7 @@ export async function GET(request: Request) { } const subscriptionsData = await subscriptionsResponse.json(); - console.log('Subscriptions response:', { - success: subscriptionsData.success, - count: subscriptionsData.count, - subscriptionsCount: subscriptionsData.subscriptions?.length, - update: subscriptionsData.update, - remove: subscriptionsData.remove - }); + console.log('Subscriptions response:', subscriptionsData); if (!subscriptionsData.success || !Array.isArray(subscriptionsData.update)) { console.error('Invalid subscriptions response structure'); @@ -138,8 +132,8 @@ export async function GET(request: Request) { if (sub.t === 'd') { return sub.rid.includes(currentUser._id); } - // For channels (t: 'c'), include all channels - return sub.t === 'c'; + // For channels (t: 'c'), include if user has unread messages or mentions + return sub.t === 'c' && (sub.unread > 0 || sub.userMentions > 0 || sub.alert); }); console.log('Filtered subscriptions:', { @@ -156,7 +150,7 @@ export async function GET(request: Request) { const messages: any[] = []; const processedRooms = new Set(); - // Step 5: Fetch messages using admin token + // Step 5: Fetch messages for (const subscription of userSubscriptions) { if (messages.length >= 7 || processedRooms.has(subscription._id)) continue; processedRooms.add(subscription._id);