fiddy/apps/web/app/api/user/settings/route.ts
Nico f8e426542d
Some checks failed
Build & Deploy Fiddy (Dokploy) / build (push) Has been cancelled
Build & Deploy Fiddy (Dokploy) / deploy (push) Has been cancelled
feat: implement schedules pivot, scheduler service, and dokploy deploy flow
2026-02-15 17:10:58 -08:00

34 lines
1.6 KiB
TypeScript

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 });
}
}