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
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);
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
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',
headers: adminHeaders
});
@ -193,7 +196,8 @@ export async function GET(request: Request) {
roomType: subscription.t,
unread: subscription.unread || 0,
userMentions: subscription.userMentions || 0,
alert: subscription.alert || false
alert: subscription.alert || false,
lastSeen: subscription.ls
});
}
} 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());
const limitedMessages = messages.slice(0, 6);
const limitedMessages = messages.slice(0, 7);
return NextResponse.json({ messages: limitedMessages }, { status: 200 });
} catch (error) {