import { eq } from 'drizzle-orm' import { z } from 'zod' import { users } from '../../db/schema' const bodySchema = z.object({ name: z.string().trim().min(1), password: z.string().min(1), }) export default defineEventHandler(async (event) => { const body = await readValidatedBody(event, bodySchema.parse) const db = useDb() const rows = await db.select().from(users).where(eq(users.name, body.name)).limit(1) const user = rows[0] if (!user || !verifyPassword(body.password, user.passwordHash)) { throw createError({ statusCode: 401, statusMessage: 'Name oder Passwort falsch' }) } await createSession(event, user.id) return { user: { id: user.id, name: user.name, email: user.email, color: user.color, cardEffect: user.cardEffect, cardEffectColor: user.cardEffectColor, cardVignette: user.cardVignette, cardBorderEffect: user.cardBorderEffect, cardBorderEffectColor: user.cardBorderEffectColor, avatarUrl: avatarUrl(user.avatar), roles: await getUserRoles(user.id), permissions: await getUserPermissions(user.id) } } })