import { listPapers } from "@/lib/papers/queries"; import { parseListParams } from "@/lib/papers/params"; import { json, limited, tooMany } from "@/lib/api"; import { APP_URL } from "@/lib/env"; export async function GET(req: Request) { if (limited(req, "api")) return tooMany(); const sp: Record = {}; for (const [k, v] of new URL(req.url).searchParams) sp[k] = sp[k] ? ([] as string[]).concat(sp[k], v) : v; const res = await listPapers(parseListParams(sp)); return json({ ...res, items: res.items.map((p) => ({ ...p, url: `${APP_URL}/papers/${p.slug}`, pdf_url: p.has_pdf && p.file_id ? `${APP_URL}/api/files/${p.file_id}/${p.slug}-${p.version_label ?? "current"}.pdf` : null })) }); }