33 lines
705 B
TypeScript
33 lines
705 B
TypeScript
import { defineEventHandler } from 'h3'
|
|
import { prisma } from '~/server/utils/prisma'
|
|
import { requireAuth } from '~/server/utils/auth'
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const user = await requireAuth(event)
|
|
if (!user) return []
|
|
|
|
const users = await prisma.user.findMany({
|
|
select: {
|
|
id: true,
|
|
username: true,
|
|
email: true,
|
|
role: true,
|
|
profile: {
|
|
select: {
|
|
displayName: true,
|
|
avatar: true
|
|
}
|
|
}
|
|
}
|
|
})
|
|
|
|
return users.map(u => ({
|
|
id: u.id,
|
|
username: u.username,
|
|
email: u.email,
|
|
role: u.role,
|
|
displayName: u.profile?.displayName || u.username,
|
|
avatar: u.profile?.avatar
|
|
}))
|
|
})
|