22 lines
950 B
TypeScript
22 lines
950 B
TypeScript
import { NextResponse } from "next/server";
|
|
import { browseCategory, searchExperts } from "@/lib/experts-search";
|
|
|
|
// GET /api/experts/search?q=<text> or ?category=<name>
|
|
// Same-origin proxy for Minnect's PUBLIC expert list. EXPERTS ONLY: it never
|
|
// calls a user-search endpoint. Public fields only. No session needed.
|
|
// Upstream failure -> 502 { error: "experts_unavailable" }.
|
|
|
|
export const runtime = "nodejs";
|
|
|
|
export async function GET(req: Request) {
|
|
const url = new URL(req.url);
|
|
const q = (url.searchParams.get("q") ?? "").trim().slice(0, 80);
|
|
const category = (url.searchParams.get("category") ?? "").trim().slice(0, 80);
|
|
if (!q && !category) return NextResponse.json({ experts: [] });
|
|
const result = q ? await searchExperts(q) : await browseCategory(category);
|
|
if (!result.ok) {
|
|
return NextResponse.json({ error: result.error }, { status: result.status });
|
|
}
|
|
return NextResponse.json({ experts: result.experts });
|
|
}
|