widget chat 18
This commit is contained in:
parent
45a00938db
commit
f9cdb6c2f0
@ -70,13 +70,17 @@ export async function GET(request: Request) {
|
||||
const messages: any[] = [];
|
||||
|
||||
for (const subscription of subscriptionsData.update) {
|
||||
// Skip if we already have 6 messages
|
||||
if (messages.length >= 6) break;
|
||||
|
||||
console.log(`Fetching messages for room ${subscription.name} using endpoint ${subscription.t === 'c' ? 'channels.messages' : 'im.messages'}`);
|
||||
|
||||
const endpoint = subscription.t === 'c' ? 'channels.messages' : 'im.messages';
|
||||
const roomId = subscription.t === 'c' ? subscription.name : subscription.rid;
|
||||
|
||||
// Only fetch the last message
|
||||
const messagesResponse = await fetch(
|
||||
`${baseUrl}/api/v1/${endpoint}?roomId=${roomId}`,
|
||||
`${baseUrl}/api/v1/${endpoint}?roomId=${roomId}&count=1`,
|
||||
{
|
||||
headers: {
|
||||
'X-Auth-Token': session.rocketChatToken,
|
||||
@ -98,14 +102,27 @@ export async function GET(request: Request) {
|
||||
console.log(`Messages response for ${subscription.name}:`, messagesData);
|
||||
|
||||
if (messagesData.messages && messagesData.messages.length > 0) {
|
||||
messages.push(...messagesData.messages);
|
||||
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
|
||||
});
|
||||
} else {
|
||||
console.log(`No messages found for room: ${roomId}`);
|
||||
}
|
||||
}
|
||||
|
||||
console.log('Found messages:', messages.length);
|
||||
return new Response(JSON.stringify({ messages }), {
|
||||
// Sort messages by timestamp (newest first) and take only the first 6
|
||||
messages.sort((a, b) => new Date(b.ts).getTime() - new Date(a.ts).getTime());
|
||||
const limitedMessages = messages.slice(0, 6);
|
||||
|
||||
console.log('Found messages:', limitedMessages.length);
|
||||
return new Response(JSON.stringify({ messages: limitedMessages }), {
|
||||
status: 200,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
});
|
||||
|
||||
Loading…
Reference in New Issue
Block a user