// ===================================================== // 終極連線清理 API // ===================================================== import { NextRequest, NextResponse } from 'next/server'; import { ultimateKiller } from '@/lib/ultimate-connection-killer'; export async function POST(request: NextRequest) { try { const body = await request.json(); const { action } = body; switch (action) { case 'kill-all': // 終極清理 - 殺死所有連線 console.log('💀 收到終極清理請求'); const killResult = await ultimateKiller.ultimateKill(); return NextResponse.json({ success: killResult.success, message: killResult.message || '終極清理完成', data: killResult, timestamp: new Date().toISOString() }); case 'restart': // 強制重啟資料庫連線 console.log('🔄 收到強制重啟請求'); const restartResult = await ultimateKiller.forceRestart(); return NextResponse.json({ success: restartResult.success, message: restartResult.message || '強制重啟完成', data: restartResult, timestamp: new Date().toISOString() }); default: return NextResponse.json({ success: false, error: '無效的操作參數', availableActions: ['kill-all', 'restart'] }, { 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') || 'status'; switch (action) { case 'status': // 檢查連線狀態 const status = await ultimateKiller.checkStatus(); if (status) { return NextResponse.json({ success: true, message: '連線狀態獲取成功', data: status, timestamp: new Date().toISOString() }); } else { return NextResponse.json({ success: false, error: '無法獲取連線狀態' }, { status: 500 }); } default: return NextResponse.json({ success: false, error: '無效的操作參數', availableActions: ['status'] }, { status: 400 }); } } catch (error) { console.error('❌ 終極清理 GET API 錯誤:', error); return NextResponse.json({ success: false, error: '獲取連線狀態失敗', details: error instanceof Error ? error.message : '未知錯誤' }, { status: 500 }); } }