Add announcement editing and reliable per-recipient mail delivery

This commit is contained in:
t.indorf
2026-10-13 08:53:22 +02:00
parent 661776e609
commit 1472779781
22 changed files with 1655 additions and 190 deletions
+19 -3
View File
@@ -3,6 +3,8 @@ import { authorizeAlarmJob, runAlarmJob } from "@/lib/alarms/job";
import { runNotdienstNotificationJob } from "@/lib/notdienst-notifications";
import { deliverDueAnnouncementEmails } from "@/lib/announcement-delivery";
export const runtime = "nodejs";
export const dynamic = "force-dynamic";
export async function POST(request: Request) {
@@ -18,12 +20,26 @@ export async function POST(request: Request) {
{ status },
);
try {
const [alarm, planning] = await Promise.allSettled([runAlarmJob(), runNotdienstNotificationJob()]);
if (alarm.status === "rejected" || planning.status === "rejected") throw new Error("Ein Hintergrundlauf ist fehlgeschlagen.");
const result = { ...alarm.value, planning: planning.value };
const [alarm, planning, announcements] = await Promise.allSettled([
runAlarmJob(),
runNotdienstNotificationJob(),
deliverDueAnnouncementEmails(),
]);
if (
alarm.status === "rejected" ||
planning.status === "rejected" ||
announcements.status === "rejected"
)
throw new Error("Ein Hintergrundlauf ist fehlgeschlagen.");
const result = {
...alarm.value,
planning: planning.value,
announcements: announcements.value,
};
revalidatePath("/dashboard");
revalidatePath("/dashboard/notdienst/alarm");
revalidatePath("/dashboard/notdienst/plan");
revalidatePath("/dashboard/admin/news");
return Response.json(result);
} catch {
return Response.json(