36 lines
990 B
TypeScript
36 lines
990 B
TypeScript
import { getCommentsByPost } from "../../../db/community";
|
|
|
|
/** GET /api/community/[postId]/comments */
|
|
export default defineEventHandler(async (event) => {
|
|
const postId = getRouterParam(event, "postId");
|
|
if (!postId) throw createError({ statusCode: 400, message: "postId fehlt" });
|
|
|
|
let currentUserId: string | null = null;
|
|
try {
|
|
const u = await requireUser(event);
|
|
currentUserId = u.id;
|
|
} catch {}
|
|
|
|
const { comments, userLikes } = await getCommentsByPost(
|
|
postId,
|
|
currentUserId,
|
|
);
|
|
|
|
return comments.map((c) => {
|
|
const a = c.author;
|
|
const username = a?.username ?? "Anonym";
|
|
return {
|
|
id: c.id,
|
|
content: c.content,
|
|
createdAt: c.createdAt,
|
|
likesCount: c.likesCount ?? 0,
|
|
userLike: userLikes.has(c.id),
|
|
parentCommentId: c.parentReplyId ?? null,
|
|
authorId: c.userId ?? null,
|
|
authorNickname: a?.nickname ?? username,
|
|
authorAvatar: a?.avatar ?? null,
|
|
authorTier: "beginner",
|
|
};
|
|
});
|
|
});
|