2026-05-25 14:31:58 +08:00

43 lines
1.1 KiB
TypeScript

import { NextResponse } from 'next/server';
import { testProjectConnection } from '@/lib/db';
import { verifySuperAdmin } from '@/lib/project-auth';
export async function POST(request: Request) {
try {
// 验证超管权限
const authResult = await verifySuperAdmin();
if (!authResult.success) {
return authResult.response;
}
const body = await request.json();
const { dbHost, dbPort, dbName, dbUser, dbPassword, dbSchema } = body;
// 验证必填字段
if (!dbHost || !dbName || !dbUser || !dbPassword) {
return NextResponse.json(
{ success: false, error: '缺少必填字段' },
{ status: 400 }
);
}
// 测试连接
const result = await testProjectConnection({
dbHost,
dbPort: dbPort || 5432,
dbName,
dbUser,
dbPassword,
dbSchema: dbSchema || 'public',
});
return NextResponse.json(result);
} catch (error) {
console.error('测试连接失败:', error);
return NextResponse.json(
{ success: false, error: '服务器错误' },
{ status: 500 }
);
}
}