Verlauf filterbar (URL, API, proxdeploy history); Wiederholen füllt den Assistenten aus einem alten Auftrag; Aufräumen löscht nach Fehlschlag oder Abbruch den halb angelegten Gast – nur, wenn dessen Beschreibung auf den Auftrag verweist. Deshalb setzt das Klonen die Beschreibung jetzt sofort. Auf pve-demo geprüft (CT 109). Closes #014 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
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/<kurzId>/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 });
|
|
});
|