import { NextRequest, NextResponse } from "next/server"; import { ScrapydClient } from "@/lib/scrapyd-client"; export async function GET(request: NextRequest) { try { const searchParams = request.nextUrl.searchParams; const project = searchParams.get("project"); if (!project) { return NextResponse.json( { error: "Project name is required" }, { status: 400 } ); } const data = await ScrapydClient.listVersions({ project }); return NextResponse.json(data); } catch (error) { console.error("Failed to fetch versions:", error); return NextResponse.json( { error: "Failed to fetch versions" }, { status: 500 } ); } } export async function DELETE(request: NextRequest) { try { const body = await request.json(); const { project, version } = body; if (!project || !version) { return NextResponse.json( { error: "Project and version are required" }, { status: 400 } ); } const data = await ScrapydClient.deleteVersion({ project, version }); return NextResponse.json(data); } catch (error) { console.error("Failed to delete version:", error); return NextResponse.json( { error: "Failed to delete version" }, { status: 500 } ); } } export async function POST(request: NextRequest) { try { const formData = await request.formData(); const project = formData.get("project") as string; const version = formData.get("version") as string; const eggFile = formData.get("egg") as File; if (!project || !version || !eggFile) { return NextResponse.json( { error: "Project, version, and egg file are required" }, { status: 400 } ); } const buffer = Buffer.from(await eggFile.arrayBuffer()); const data = await ScrapydClient.addVersion(project, version, buffer); return NextResponse.json(data); } catch (error) { console.error("Failed to add version:", error); return NextResponse.json( { error: "Failed to add version" }, { status: 500 } ); } }