import { NextResponse } from "next/server"; import { aufruferAdresse } from "@/lib/adressen"; import { api, jsonLesen } from "@/server/api"; import { ausrollenStarten } from "@/server/services/ausrollen"; import { rechtErforderlich } from "@/server/auth/zugang"; import { auftraegeSuchen, verlaufFilterAus } from "@/server/services/auftraege"; /** Verlauf: `?server=&typ=vm|lxc|template|aufraeumen&distribution=&status=&seite=`. */ export const GET = api(async (anfrage: Request) => { await rechtErforderlich(anfrage, "lesen"); const filter = verlaufFilterAus(Object.fromEntries(new URL(anfrage.url).searchParams)); return NextResponse.json(await auftraegeSuchen(filter)); }); /** Ausrollen → 202 mit Kurz-ID; Fortschritt unter /api/v1/auftraege//ereignisse. */ export const POST = api(async (anfrage: Request) => { const aufrufer = await rechtErforderlich(anfrage, "ausrollen"); const auftrag = await ausrollenStarten( await jsonLesen(anfrage), aufrufer, aufruferAdresse(anfrage.headers), ); return NextResponse.json({ id: auftrag.id, kurzId: auftrag.kurzId }, { status: 202 }); });