homelab-dashboard/app/api/config/test-service/route.ts
Bilal Teke 69c2057252 v4
2026-04-20 14:34:07 +02:00

31 lines
948 B
TypeScript

import { auth } from '@/auth';
import { NextRequest, NextResponse } from 'next/server';
import { checkService, type ServiceCheckResult } from '@/src/lib/monitor/check-service';
import { serviceSchema } from '@/src/lib/config/schema';
function jsonError(message: string, status: number) {
return NextResponse.json({ error: message }, { status });
}
export async function POST(request: NextRequest) {
const session = await auth();
if (!session) {
return jsonError('Unauthorized', 401);
}
try {
const body = await request.json();
const service = serviceSchema.parse(body);
const result: ServiceCheckResult = await checkService(service);
return NextResponse.json(result);
} catch (error) {
console.error('Error testing service:', error);
if (error instanceof Error) {
return jsonError(`Failed to test service: ${error.message}`, 400);
}
return jsonError('Failed to test service', 500);
}
}