Some checks failed
PR Checks / lint-test-and-docker-build (pull_request) Failing after 1m3s
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
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 });
|
|
};
|