Files
2025-08-20 23:40:00 +02:00

40 lines
820 B
TypeScript

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 };
});