sing-ui/app/api/pipelines/[id]/run/route.ts

23 lines
687 B
TypeScript

import { AlreadyRunningError, jobManager } from "@/lib/jobs";
export const runtime = "nodejs";
export const dynamic = "force-dynamic";
export async function POST(
_request: Request,
{ params }: { params: Promise<{ id: string }> }
) {
try {
const { id } = await params;
const run = jobManager.startRun(Number(id));
return Response.json(run, { status: 201 });
} catch (err) {
if (err instanceof AlreadyRunningError) {
return Response.json({ error: err.message }, { status: 409 });
}
const message = (err as Error).message;
const status = message.includes("not found") ? 404 : 500;
return Response.json({ error: message }, { status });
}
}