import { useValidatedBody, z } from 'h3-zod'; import prisma from '~~/lib/prisma'; export default defineEventHandler(async (event) => { const user = await requireUserSession(event); const data = await useValidatedBody( event, z.object({ name: z.string().min(3).max(256).trim(), email: z.email().max(256).trim() }) ); try { const dbUser = await prisma.user.update({ where: { id: user.user.id }, data, select: { id: true, name: true, role: true } }); await setUserSession(event, { user: dbUser, loggedInAt: user.loggedInAt }); } catch (e) { throw createError({ cause: e, status: 409, statusText: 'User with that email already exists!' }); } return { ok: true }; });