33 lines
879 B
TypeScript
33 lines
879 B
TypeScript
import { revalidatePath } from "next/cache";
|
|
import { authorizeAlarmJob, runAlarmJob } from "@/lib/alarms/job";
|
|
|
|
export const runtime = "nodejs";
|
|
export const dynamic = "force-dynamic";
|
|
export async function POST(request: Request) {
|
|
const status = authorizeAlarmJob(request.headers.get("authorization"));
|
|
if (status !== 200)
|
|
return Response.json(
|
|
{
|
|
error:
|
|
status === 503
|
|
? "Fristprüfung ist nicht konfiguriert."
|
|
: "Nicht autorisiert.",
|
|
},
|
|
{ status },
|
|
);
|
|
try {
|
|
const result = await runAlarmJob();
|
|
revalidatePath("/dashboard");
|
|
revalidatePath("/dashboard/notdienst/alarm");
|
|
return Response.json(result);
|
|
} catch {
|
|
return Response.json(
|
|
{
|
|
error:
|
|
"Fristprüfung fehlgeschlagen; nächster Aufruf versucht es erneut.",
|
|
},
|
|
{ status: 500 },
|
|
);
|
|
}
|
|
}
|