import { createPipeline, listPipelines } from "@/lib/db"; export const runtime = "nodejs"; export const dynamic = "force-dynamic"; function normalizeStreams(raw: unknown): string { if (typeof raw === "string") return raw; return JSON.stringify(raw ?? []); } export async function GET() { try { return Response.json(listPipelines()); } catch (err) { return Response.json({ error: (err as Error).message }, { status: 500 }); } } export async function POST(request: Request) { try { const body = await request.json(); if (!body.name || !body.source_conn_id || !body.target_conn_id) { return Response.json( { error: "name, source_conn_id and target_conn_id are required" }, { status: 400 } ); } const pipeline = createPipeline({ name: String(body.name), source_conn_id: Number(body.source_conn_id), target_conn_id: Number(body.target_conn_id), schema_sync: body.schema_sync === undefined ? 1 : Number(body.schema_sync), mode: body.mode ? String(body.mode) : "full-refresh", streams: normalizeStreams(body.streams), }); return Response.json(pipeline, { status: 201 }); } catch (err) { return Response.json({ error: (err as Error).message }, { status: 500 }); } }