Mahmoud Eljendy
feat: Antibody Studio — AI-native antibody design workspace by Proteinea
30cc31a
import { NextResponse } from "next/server";
import { phyloBackendUrl } from "@/lib/env";
export const dynamic = "force-dynamic";
export async function GET(
_req: Request,
{ params }: { params: { source: string; entryId: string[] } },
) {
const { source, entryId } = params;
if (!source || !entryId || entryId.length === 0) {
return NextResponse.json({ error: "missing_params" }, { status: 400 });
}
const entryPath = entryId.map(encodeURIComponent).join("/");
try {
const res = await fetch(
`${phyloBackendUrl()}/api/datasets/${encodeURIComponent(source)}/${entryPath}`,
{
headers: { Accept: "application/json" },
cache: "no-store",
},
);
if (res.status === 404) {
return NextResponse.json({ error: "not_found" }, { status: 404 });
}
if (!res.ok) {
const text = await res.text().catch(() => "");
return NextResponse.json(
{ error: "backend_error", detail: text },
{ status: res.status },
);
}
const data = await res.json();
return NextResponse.json(data);
} catch {
return NextResponse.json(
{ error: "backend_unreachable" },
{ status: 502 },
);
}
}