import { NextResponse } from "next/server"; import { requireSessionUser } from "@/lib/server/session"; import { getUserSettings, setUserSettings } from "@/lib/server/user-settings"; import { getRequestMeta } from "@/lib/server/request"; import { toErrorResponse } from "@/lib/server/errors"; export async function GET() { const { requestId } = await getRequestMeta(); try { const user = await requireSessionUser(); const settings = await getUserSettings(user.id); return NextResponse.json({ requestId, request_id: requestId, settings }); } catch (e) { const { status, body } = toErrorResponse(e, "GET /api/user/settings", requestId); return NextResponse.json(body, { status }); } } export async function POST(req: Request) { const { requestId } = await getRequestMeta(); try { const user = await requireSessionUser(); const body = await req.json().catch(() => null); const entryPanelPageSize = Number(body?.entryPanelPageSize); if (!Number.isFinite(entryPanelPageSize) || entryPanelPageSize <= 0) return NextResponse.json({ requestId, request_id: requestId, error: { code: "INVALID_PAGE_SIZE", message: "entryPanelPageSize must be a positive number" } }, { status: 400 }); const settings = await setUserSettings({ userId: user.id, entryPanelPageSize }); return NextResponse.json({ requestId, request_id: requestId, settings }); } catch (e) { const { status, body } = toErrorResponse(e, "POST /api/user/settings", requestId); return NextResponse.json(body, { status }); } }