blob: 2e99eb3c46caaa13547f252ade9d487e7ec37953 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import { NextRequest, NextResponse } from 'next/server';
import { getServerSession } from 'next-auth';
import { authOptions } from "@/app/api/auth/[...nextauth]/route"
import realtimeNotificationService from '@/lib/realtime/RealtimeNotificationService';
import notificationManager from '@/lib/realtime/NotificationManager';
export async function GET(request: NextRequest) {
try {
const session = await getServerSession(authOptions);
if (!session?.user?.roles || !session.user.roles.includes('admin')) {
return NextResponse.json({ error: 'Forbidden' }, { status: 403 });
}
const stats = {
connectedClients: realtimeNotificationService.getConnectedClientCount(),
dbConnectionStatus: notificationManager.getConnectionStatus(),
timestamp: new Date().toISOString()
};
return NextResponse.json(stats);
} catch (error) {
console.error('Error fetching notification stats:', error);
return NextResponse.json(
{ error: 'Failed to fetch stats' },
{ status: 500 }
);
}
}
|