import { z } from "zod/v4-mini"; import { readUsers } from "~/server/database"; import { serverUserToApiDetails } from "~/server/utils/user"; const integerStringSchema = z.pipe( z.string().check(z.regex(/^\d+/)), z.transform(Number) ); const detailsSchema = z.object({ id: integerStringSchema, }); export default defineEventHandler(async (event) => { await requireServerSessionWithAdmin(event); const users = await readUsers(); const { success, error, data: params } = detailsSchema.safeParse(getRouterParams(event)); if (!success) { throw createError({ status: 400, statusText: "Bad Request", message: z.prettifyError(error), }); } const user = users.find(user => user.id === params.id); if (!user) { throw createError({ statusCode: 404, statusMessage: "Not found", }); } return serverUserToApiDetails(user); })