30 lines
777 B
TypeScript
30 lines
777 B
TypeScript
import { prisma } from '../../utils/prisma'
|
|
import { requireAuthContext } from '../../utils/require-auth'
|
|
|
|
/**
|
|
* Retorna o nome de exibição de um usuário pelo ID (sub do JWT).
|
|
* Usado para resolver nomes de autores de reviews.
|
|
* Responde com { displayName: string | null } — null quando o ID
|
|
* pertence a outro sistema (usuário externo).
|
|
*/
|
|
export default defineEventHandler(async (event) => {
|
|
requireAuthContext(event)
|
|
|
|
const id = getRouterParam(event, 'id')
|
|
|
|
if (!id) {
|
|
throw createError({ statusCode: 400, statusMessage: 'ID obrigatório' })
|
|
}
|
|
|
|
const user = await prisma.user.findUnique({
|
|
where: { id },
|
|
select: { email: true }
|
|
})
|
|
|
|
if (!user) {
|
|
return { displayName: null }
|
|
}
|
|
|
|
return { displayName: user.email.split('@')[0] }
|
|
})
|