diff options
Diffstat (limited to 'app/api/notifications/stats')
| -rw-r--r-- | app/api/notifications/stats/route.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/api/notifications/stats/route.ts b/app/api/notifications/stats/route.ts new file mode 100644 index 00000000..2e99eb3c --- /dev/null +++ b/app/api/notifications/stats/route.ts @@ -0,0 +1,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 } + ); + } +}
\ No newline at end of file |
