import { getUserIdFromSession } from '../../utils/auth'; export default defineEventHandler(async (event) => { // 1. Get user ID from session; this helper handles the 401 check. const userId = await getUserIdFromSession(event); // 2. Fetch the full user from the database const user = await prisma.user.findUnique({ where: { id: userId }, }); if (!user) { // This case might happen if the user was deleted but the session still exists. // The helper can't handle this, so we clear the session here. const session = await useSession(event, { password: process.env.SESSION_PASSWORD }); await session.clear(); throw createError({ statusCode: 401, statusMessage: 'Unauthorized: User not found.', }); } // 3. Return user data DTO return { user: { id: user.id, email: user.email, nickname: user.nickname, avatar: user.avatar, coins: user.coins, exp: user.exp, soundOn: user.soundOn, confettiOn: user.confettiOn, createdAt: user.createdAt, updatedAt: user.updatedAt, } }; });