import { json } from '@sveltejs/kit'; import type { RequestHandler } from './$types'; import { requireAdmin } from '$lib/server/admin/auth.js'; import { deleteUser, listUsers, updateUser } from '$lib/server/users.js'; export const GET: RequestHandler = async (event) => { requireAdmin((await event.locals.auth())?.user); return json(listUsers()); }; export const PATCH: RequestHandler = async (event) => { requireAdmin((await event.locals.auth())?.user); const body = await event.request.json(); const { id, username, full_name, email } = body as { id?: string; username?: string; full_name?: string; email?: string | null; }; if (!id?.trim() || !username?.trim() || !full_name?.trim()) { return json({ error: 'id, username and full_name required' }, { status: 400 }); } updateUser({ id: id.trim(), username, fullName: full_name, email }); return json({ ok: true }); }; export const DELETE: RequestHandler = async (event) => { requireAdmin((await event.locals.auth())?.user); const id = event.url.searchParams.get('id')?.trim(); if (!id) return json({ error: 'id required' }, { status: 400 }); deleteUser(id); return json({ ok: true }); };