widget parole 15

This commit is contained in:
Alma 2025-04-13 00:41:52 +02:00
parent ec604cf76f
commit 49b5e2da30

View File

@ -154,13 +154,16 @@ export async function GET(request: Request) {
// Fetch messages using admin token // Fetch messages using admin token
for (const subscription of userSubscriptions) { for (const subscription of userSubscriptions) {
if (messages.length >= 6 || processedRooms.has(subscription._id)) continue; if (messages.length >= 7 || processedRooms.has(subscription._id)) continue;
processedRooms.add(subscription._id); processedRooms.add(subscription._id);
try { try {
// Determine the correct endpoint based on room type
const endpoint = subscription.t === 'c' ? 'channels.messages' : 'im.messages';
// Get the latest messages from the room // Get the latest messages from the room
const messagesResponse = await fetch( const messagesResponse = await fetch(
`${baseUrl}/api/v1/channels.messages?roomId=${subscription.rid}&count=1`, { `${baseUrl}/api/v1/${endpoint}?roomId=${subscription.rid}&count=1`, {
method: 'GET', method: 'GET',
headers: adminHeaders headers: adminHeaders
}); });
@ -193,7 +196,8 @@ export async function GET(request: Request) {
roomType: subscription.t, roomType: subscription.t,
unread: subscription.unread || 0, unread: subscription.unread || 0,
userMentions: subscription.userMentions || 0, userMentions: subscription.userMentions || 0,
alert: subscription.alert || false alert: subscription.alert || false,
lastSeen: subscription.ls
}); });
} }
} catch (error) { } catch (error) {
@ -202,9 +206,9 @@ export async function GET(request: Request) {
} }
} }
// Sort messages by timestamp (newest first) and limit to 6 // Sort messages by timestamp (newest first) and limit to 7
messages.sort((a, b) => new Date(b.ts).getTime() - new Date(a.ts).getTime()); messages.sort((a, b) => new Date(b.ts).getTime() - new Date(a.ts).getTime());
const limitedMessages = messages.slice(0, 6); const limitedMessages = messages.slice(0, 7);
return NextResponse.json({ messages: limitedMessages }, { status: 200 }); return NextResponse.json({ messages: limitedMessages }, { status: 200 });
} catch (error) { } catch (error) {