feat: Implement admin functionality to edit and delete comments.

This commit is contained in:
x
2026-01-25 04:31:23 +01:00
parent 322698cf74
commit 2c0f4f3397
4 changed files with 157 additions and 4 deletions

View File

@@ -181,5 +181,34 @@ export default (router, tpl) => {
}
});
// Edit comment (admin only)
router.post(/\/api\/comments\/(?<id>\d+)\/edit/, async (req, res) => {
if (!req.session) return res.reply({ code: 401, body: JSON.stringify({ success: false }) });
if (!req.session.admin) return res.reply({ code: 403, body: JSON.stringify({ success: false, message: "Admin only" }) });
const commentId = req.params.id;
const body = req.post || {};
const content = body.content;
if (!content || !content.trim()) {
return res.reply({ body: JSON.stringify({ success: false, message: "Empty content" }) });
}
try {
const comment = await db`SELECT id FROM comments WHERE id = ${commentId}`;
if (!comment.length) return res.reply({ code: 404, body: JSON.stringify({ success: false, message: "Not found" }) });
await db`UPDATE comments SET content = ${content}, updated_at = NOW() WHERE id = ${commentId}`;
return res.reply({
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ success: true })
});
} catch (e) {
console.error(e);
return res.reply({ code: 500, body: JSON.stringify({ success: false }) });
}
});
return router;
};