Files
OpenFrame/app/api/onboarding/complete/route.ts
T

28 lines
959 B
TypeScript

import { auth } from '@/lib/auth';
import { db } from '@/lib/db';
import { apiErrors, successResponse } from '@/lib/api-response';
import { checkRateLimit, rateLimitHeaders, RATE_LIMIT_CONFIGS } from '@/lib/rate-limit';
export async function POST() {
const session = await auth();
if (!session?.user?.id) {
return apiErrors.unauthorized();
}
const cfg = RATE_LIMIT_CONFIGS['onboarding-complete'];
const rl = await checkRateLimit(session.user.id, 'onboarding-complete', cfg);
if (!rl.allowed) {
return new Response(
JSON.stringify({ error: 'Too many requests. Please try again later.' }),
{ status: 429, headers: { 'Content-Type': 'application/json', ...rateLimitHeaders(rl, cfg.maxRequests) } }
);
}
await db.user.update({
where: { id: session.user.id },
data: { onboardingCompletedAt: new Date() },
});
return successResponse({ completed: true });
}