widget parole 16
This commit is contained in:
parent
49b5e2da30
commit
5a49f3f099
@ -51,15 +51,14 @@ export async function GET(request: Request) {
|
||||
|
||||
console.log('Using Rocket.Chat base URL:', baseUrl);
|
||||
|
||||
// Use admin token to get messages
|
||||
// Step 1: Use admin token to authenticate
|
||||
const adminHeaders = {
|
||||
'X-Auth-Token': process.env.ROCKET_CHAT_TOKEN!,
|
||||
'X-User-Id': process.env.ROCKET_CHAT_USER_ID!,
|
||||
'Content-Type': 'application/json',
|
||||
'Accept': 'application/json'
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
|
||||
// First, get the user's Rocket.Chat ID using their email
|
||||
// Step 2: Get the current user's Rocket.Chat ID
|
||||
const username = session.user.email.split('@')[0];
|
||||
if (!username) {
|
||||
console.error('No username found in session email');
|
||||
@ -74,8 +73,6 @@ export async function GET(request: Request) {
|
||||
|
||||
if (!usersResponse.ok) {
|
||||
console.error('Failed to get users list:', usersResponse.status);
|
||||
const errorText = await usersResponse.text();
|
||||
console.error('Users list error details:', errorText);
|
||||
return NextResponse.json({ messages: [] }, { status: 200 });
|
||||
}
|
||||
|
||||
@ -101,16 +98,35 @@ export async function GET(request: Request) {
|
||||
id: currentUser._id
|
||||
});
|
||||
|
||||
// Get user's subscriptions using admin token
|
||||
// Step 3: Create a user token for the current user using admin token
|
||||
const createTokenResponse = await fetch(`${baseUrl}/api/v1/users.createToken`, {
|
||||
method: 'POST',
|
||||
headers: adminHeaders,
|
||||
body: JSON.stringify({
|
||||
userId: currentUser._id
|
||||
})
|
||||
});
|
||||
|
||||
if (!createTokenResponse.ok) {
|
||||
console.error('Failed to create user token:', createTokenResponse.status);
|
||||
return NextResponse.json({ messages: [] }, { status: 200 });
|
||||
}
|
||||
|
||||
const tokenData = await createTokenResponse.json();
|
||||
const userHeaders = {
|
||||
'X-Auth-Token': tokenData.data.authToken,
|
||||
'X-User-Id': currentUser._id,
|
||||
'Content-Type': 'application/json'
|
||||
};
|
||||
|
||||
// Step 4: Get user's subscriptions using user token
|
||||
const subscriptionsResponse = await fetch(`${baseUrl}/api/v1/subscriptions.get`, {
|
||||
method: 'GET',
|
||||
headers: adminHeaders
|
||||
headers: userHeaders
|
||||
});
|
||||
|
||||
if (!subscriptionsResponse.ok) {
|
||||
console.error('Failed to get subscriptions:', subscriptionsResponse.status);
|
||||
const errorText = await subscriptionsResponse.text();
|
||||
console.error('Subscriptions error details:', errorText);
|
||||
return NextResponse.json({ messages: [] }, { status: 200 });
|
||||
}
|
||||
|
||||
@ -152,7 +168,7 @@ export async function GET(request: Request) {
|
||||
const messages: any[] = [];
|
||||
const processedRooms = new Set();
|
||||
|
||||
// Fetch messages using admin token
|
||||
// Step 5: Fetch messages using user token
|
||||
for (const subscription of userSubscriptions) {
|
||||
if (messages.length >= 7 || processedRooms.has(subscription._id)) continue;
|
||||
processedRooms.add(subscription._id);
|
||||
@ -165,7 +181,7 @@ export async function GET(request: Request) {
|
||||
const messagesResponse = await fetch(
|
||||
`${baseUrl}/api/v1/${endpoint}?roomId=${subscription.rid}&count=1`, {
|
||||
method: 'GET',
|
||||
headers: adminHeaders
|
||||
headers: userHeaders
|
||||
});
|
||||
|
||||
if (!messagesResponse.ok) {
|
||||
@ -175,13 +191,6 @@ export async function GET(request: Request) {
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check if response is JSON
|
||||
const contentType = messagesResponse.headers.get('content-type');
|
||||
if (!contentType?.includes('application/json')) {
|
||||
console.error(`Non-JSON response for room ${subscription.name}:`, contentType);
|
||||
continue;
|
||||
}
|
||||
|
||||
const messageData = await messagesResponse.json();
|
||||
console.log(`Messages for room ${subscription.name}:`, {
|
||||
success: messageData.success,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user