spb/tools-spboucher-ai
Public
1import { headers } from "next/headers";2import { requireUser, jsonError } from "@/lib/auth/guard";3import { clientIp } from "@/lib/auth/session";4import { listTools, saveToolRecord } from "@/lib/admin/tools";5export async function GET(req: Request) {6 try { await requireUser(); const p = new URL(req.url).searchParams; return Response.json(await listTools({ q: p.get("q") ?? undefined, status: p.get("status") ?? undefined, visibility: p.get("visibility") ?? undefined, linkState: p.get("linkState") ?? undefined, depth: p.get("depth") ?? undefined, category: p.get("category") ?? undefined, page: Number(p.get("page") ?? 1), sort: (p.get("sort") as any) ?? undefined })); } catch (e) { return jsonError(e); }7}8export async function POST(req: Request) {9 try { const s = await requireUser(req); const id = await saveToolRecord(await req.json(), s, clientIp(await headers())); return Response.json({ ok: true, id }); } catch (e) { return jsonError(e); }10}11