widget parole 11
This commit is contained in:
parent
2697471b03
commit
5d099e272a
@ -66,44 +66,6 @@ export async function GET(request: Request) {
|
|||||||
return NextResponse.json({ messages: [] }, { status: 200 });
|
return NextResponse.json({ messages: [] }, { status: 200 });
|
||||||
}
|
}
|
||||||
|
|
||||||
let userInfo;
|
|
||||||
// Try to get user info by username first
|
|
||||||
const userInfoResponse = await fetch(`${baseUrl}/api/v1/users.info?username=${encodeURIComponent(username)}`, {
|
|
||||||
method: 'GET',
|
|
||||||
headers: adminHeaders
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!userInfoResponse.ok) {
|
|
||||||
console.error('Failed to get user info by username:', userInfoResponse.status);
|
|
||||||
const errorData = await userInfoResponse.json();
|
|
||||||
console.error('User info error details:', errorData);
|
|
||||||
|
|
||||||
// Try to get user info by email as fallback
|
|
||||||
const emailUserInfoResponse = await fetch(`${baseUrl}/api/v1/users.info?email=${encodeURIComponent(session.user.email)}`, {
|
|
||||||
method: 'GET',
|
|
||||||
headers: adminHeaders
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!emailUserInfoResponse.ok) {
|
|
||||||
console.error('Failed to get user info by email:', emailUserInfoResponse.status);
|
|
||||||
const emailErrorData = await emailUserInfoResponse.json();
|
|
||||||
console.error('Email user info error details:', emailErrorData);
|
|
||||||
return NextResponse.json({ messages: [] }, { status: 200 });
|
|
||||||
}
|
|
||||||
|
|
||||||
userInfo = await emailUserInfoResponse.json();
|
|
||||||
console.log('Found Rocket.Chat user by email:', {
|
|
||||||
username: userInfo.user?.username,
|
|
||||||
id: userInfo.user?._id
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
userInfo = await userInfoResponse.json();
|
|
||||||
console.log('Found Rocket.Chat user by username:', {
|
|
||||||
username: userInfo.user?.username,
|
|
||||||
id: userInfo.user?._id
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get user's subscriptions using admin token
|
// Get user's subscriptions using admin token
|
||||||
const subscriptionsResponse = await fetch(`${baseUrl}/api/v1/subscriptions.get`, {
|
const subscriptionsResponse = await fetch(`${baseUrl}/api/v1/subscriptions.get`, {
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
@ -124,9 +86,44 @@ export async function GET(request: Request) {
|
|||||||
subscriptionsCount: subscriptionsData.subscriptions?.length
|
subscriptionsCount: subscriptionsData.subscriptions?.length
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Get all users to find the current user
|
||||||
|
const usersResponse = await fetch(`${baseUrl}/api/v1/users.list`, {
|
||||||
|
method: 'GET',
|
||||||
|
headers: adminHeaders
|
||||||
|
});
|
||||||
|
|
||||||
|
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 });
|
||||||
|
}
|
||||||
|
|
||||||
|
const usersData = await usersResponse.json();
|
||||||
|
console.log('Users list response:', {
|
||||||
|
success: usersData.success,
|
||||||
|
count: usersData.count,
|
||||||
|
usersCount: usersData.users?.length
|
||||||
|
});
|
||||||
|
|
||||||
|
// Find the current user in the list
|
||||||
|
const currentUser = usersData.users.find((user: any) =>
|
||||||
|
user.username === username || user.emails?.some((email: any) => email.address === session.user.email)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!currentUser) {
|
||||||
|
console.error('User not found in users list');
|
||||||
|
return NextResponse.json({ messages: [] }, { status: 200 });
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('Found Rocket.Chat user:', {
|
||||||
|
username: currentUser.username,
|
||||||
|
id: currentUser._id
|
||||||
|
});
|
||||||
|
|
||||||
// Filter subscriptions for the current user
|
// Filter subscriptions for the current user
|
||||||
const userSubscriptions = subscriptionsData.subscriptions.filter((sub: any) =>
|
const userSubscriptions = subscriptionsData.subscriptions.filter((sub: any) =>
|
||||||
sub.u?._id === userInfo.user._id ||
|
sub.u?._id === currentUser._id ||
|
||||||
(sub.userMentions > 0 && sub.alert)
|
(sub.userMentions > 0 && sub.alert)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user