Files
drop/server/api/v1/user/[id]/index.get.ts
Andus 8f5d8a43c5 Add user profile page (#302)
* Add user page and API endpoint

* add: /user/[id] page
* add: /api/v1/user/[id] API endpoint

* Change loading message in user profile page

* Fix build errors, prettier code
2026-01-04 13:45:20 +11:00

30 lines
753 B
TypeScript

import aclManager from "~/server/internal/acls";
import prisma from "~/server/internal/db/database";
export default defineEventHandler(async (h3) => {
const requestingUser = await aclManager.getUserACL(h3, ["read"]);
if (!requestingUser) throw createError({ statusCode: 403 });
const userId = getRouterParam(h3, "id");
if (!userId)
throw createError({
statusCode: 400,
statusMessage: "No userId in route.",
});
const user = await prisma.user.findUnique({
where: { id: userId },
select: {
id: true,
username: true,
displayName: true,
profilePictureObjectId: true,
},
});
if (!user)
throw createError({ statusCode: 404, statusMessage: "User not found." });
return user;
});