// ===================================================== // 緊急連線清理 API // ===================================================== import { NextRequest, NextResponse } from 'next/server'; import { emergencyCleanup } from '@/lib/emergency-connection-cleanup'; export async function POST(request: NextRequest) { try { const body = await request.json(); const { action } = body; switch (action) { case 'cleanup': // 執行緊急清理 console.log('🚨 收到緊急清理請求'); await emergencyCleanup.emergencyCleanup(); return NextResponse.json({ success: true, message: '緊急清理完成', timestamp: new Date().toISOString() }); case 'kill-all': // 強制殺死所有連線 console.log('💀 收到強制殺死連線請求'); await emergencyCleanup.forceKillAllConnections(); return NextResponse.json({ success: true, message: '強制殺死連線完成', timestamp: new Date().toISOString() }); case 'details': // 獲取連線詳情 const connections = await emergencyCleanup.getConnectionDetails(); return NextResponse.json({ success: true, message: '連線詳情獲取成功', data: { connectionCount: connections.length, connections: connections }, timestamp: new Date().toISOString() }); default: return NextResponse.json({ success: false, error: '無效的操作參數', availableActions: ['cleanup', 'kill-all', 'details'] }, { status: 400 }); } } catch (error) { console.error('❌ 緊急清理 API 錯誤:', error); return NextResponse.json({ success: false, error: '緊急清理失敗', details: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } } export async function GET(request: NextRequest) { try { const { searchParams } = new URL(request.url); const action = searchParams.get('action') || 'details'; switch (action) { case 'details': // 獲取連線詳情 const connections = await emergencyCleanup.getConnectionDetails(); return NextResponse.json({ success: true, message: '連線詳情獲取成功', data: { connectionCount: connections.length, connections: connections }, timestamp: new Date().toISOString() }); default: return NextResponse.json({ success: false, error: '無效的操作參數', availableActions: ['details'] }, { status: 400 }); } } catch (error) { console.error('❌ 緊急清理 GET API 錯誤:', error); return NextResponse.json({ success: false, error: '獲取連線詳情失敗', details: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } }