import { dbGlobal } from "drizzle-pkg/lib/db"; import { users } from "drizzle-pkg/lib/schema/auth"; import { eq } from "drizzle-orm"; import { UNAUTHORIZED_MESSAGE } from "#server/constants/auth"; import { clearSessionCookie } from "#server/service/auth/cookie"; import { toPublicAuthError } from "#server/service/auth/errors"; export default defineWrappedResponseHandler(async (event) => { try { const user = await event.context.auth.requireUser(); if (!user) { clearSessionCookie(event); throw createError({ statusCode: 401, statusMessage: UNAUTHORIZED_MESSAGE, }); } const [row] = await dbGlobal .select({ nickname: users.nickname, avatar: users.avatar, }) .from(users) .where(eq(users.id, user.id)) .limit(1); return R.success({ user: { ...user, nickname: row?.nickname ?? null, avatar: row?.avatar ?? null, }, }); } catch (err) { throw toPublicAuthError(err); } });