feat : imrpove admin comment
CI / Verify (push) Successful in 1m50s
CI / Build immutable images and deploy (push) Successful in 3m47s

This commit is contained in:
2026-10-08 15:06:19 +07:00 Unverified
parent 721e2e5cf8
commit b9601b739d
11 changed files with 215 additions and 42 deletions
+5 -1
View File
@@ -1,5 +1,5 @@
import { commentHistory, getCommentViewer, listComments, mutateComment, requireCommentViewer } from "@/lib/comments/repository";
import { heartSchema, moderationSchema, reactionSchema } from "@/lib/comments/validation";
import { commentBanSchema, heartSchema, moderationSchema, reactionSchema } from "@/lib/comments/validation";
import { errorResponse, HttpError, readJson, requireSameOrigin } from "@/lib/security/http";
import { limitRequest } from "@/lib/security/rate-limit";
@@ -31,6 +31,10 @@ export async function PUT(request: Request, context: Context) {
const value = moderationSchema.safeParse(body);
if (!value.success) throw new HttpError(400, "invalid-moderation");
await mutateComment(id, viewer, "moderation", value.data.hidden);
} else if (action === "ban") {
const value = commentBanSchema.safeParse(body);
if (!value.success) throw new HttpError(400, "invalid-moderation");
await mutateComment(id, viewer, "ban", value.data.banned);
} else if (action === "heart") {
const value = heartSchema.safeParse(body);
if (!value.success) throw new HttpError(400, "invalid-heart");