23 lines
687 B
TypeScript
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 });
|
|
}
|
|
}
|