SPB Git

spb/autoscholar

Public
719 B · 17 lines typescript
1import { AppError, searchPapers } from "@autoscholar/core";2import { PublicSearchQuery } from "@autoscholar/schemas";3import { handler, json, parseQuery } from "@/lib/server/api";4import { db } from "@/lib/server/db";5import { clientIp } from "@/lib/server/ip";6import { publicLimiter } from "@/lib/server/session";78export const runtime = "nodejs";910export const GET = handler(async (req) => {11  if (!publicLimiter.check(clientIp(req) ?? "public").allowed)12    throw new AppError("rate_limited", "slow down", 429);13  const q = parseQuery(req.url, PublicSearchQuery);14  const res = await searchPapers(db(), q);15  return json(res, { headers: { "cache-control": "public, max-age=60, stale-while-revalidate=300" } });16});17
Files · main
Menu

Theme