Initial commit
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
import type { AppContext } from '@/types/hono'
|
||||
import { getUserProfile } from '@/modules/user/services/user.service'
|
||||
|
||||
export function getUserProfileHandler(c: AppContext) {
|
||||
const authUser = c.get('authUser')
|
||||
const profile = getUserProfile(authUser)
|
||||
return c.json(profile)
|
||||
}
|
||||
28
apps/backend/src/modules/user/services/user.service.ts
Normal file
28
apps/backend/src/modules/user/services/user.service.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
import type { AuthUser } from '@/types/auth-user'
|
||||
import type { UserProfile } from '@repo/api-contract'
|
||||
|
||||
export function getUserProfile(user: AuthUser): UserProfile {
|
||||
const fullName =
|
||||
(typeof user.user_metadata?.full_name === 'string' &&
|
||||
user.user_metadata.full_name) ||
|
||||
(typeof user.user_metadata?.name === 'string' && user.user_metadata.name) ||
|
||||
(user.email ?? 'Usuario')
|
||||
|
||||
const role =
|
||||
(typeof user.app_metadata?.role === 'string' && user.app_metadata.role) ||
|
||||
'member'
|
||||
|
||||
const avatarUrl =
|
||||
(typeof user.user_metadata?.avatar_url === 'string' &&
|
||||
user.user_metadata.avatar_url) ||
|
||||
null
|
||||
|
||||
return {
|
||||
id: user.id,
|
||||
fullName,
|
||||
email: user.email ?? null,
|
||||
role,
|
||||
avatarUrl,
|
||||
createdAt: user.created_at,
|
||||
}
|
||||
}
|
||||
9
apps/backend/src/modules/user/user.routes.ts
Normal file
9
apps/backend/src/modules/user/user.routes.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { Hono } from 'hono'
|
||||
import { requireAuth } from '@/middlewares/require-auth.middleware'
|
||||
import type { AppEnv } from '@/types/hono'
|
||||
import { getUserProfileHandler } from '@/modules/user/handlers/get-user-profile.handler'
|
||||
|
||||
export const userRoutes = new Hono<AppEnv>()
|
||||
|
||||
userRoutes.use('*', requireAuth)
|
||||
userRoutes.get('/profile', getUserProfileHandler)
|
||||
Reference in New Issue
Block a user