import type { RequestHandler } from './$types'; import { json, error, isHttpError } from '@sveltejs/kit'; import { z } from 'zod'; import { getDb } from '$lib/server/db'; import { validateBody } from '$lib/server/api-helpers'; import { createProfile, listProfiles } from '$lib/server/profiles/repository'; const CreateSchema = z.object({ name: z.string().min(1).max(50), avatar_emoji: z.string().max(16).nullable().optional() }); export const GET: RequestHandler = async () => { return json(listProfiles(getDb())); }; export const POST: RequestHandler = async ({ request }) => { const data = validateBody(await request.json().catch(() => null), CreateSchema); try { const p = createProfile(getDb(), data.name, data.avatar_emoji ?? null); return json(p, { status: 201 }); } catch (e) { if (isHttpError(e)) throw e; error(409, { message: (e as Error).message }); } };