@replyke/express
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
32 lines (31 loc) • 2.19 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = require("express");
const comments_1 = require("../controllers/comments");
const requireUserAuth_1 = __importDefault(require("../../middleware/requireUserAuth"));
const rateLimit_1 = require("../../utils/rateLimit");
const router = (0, express_1.Router)();
// Route for posting a new comment on an entity or reply to a comment.
router.post("/", (0, rateLimit_1.rateLimiter)("5m", 100), requireUserAuth_1.default, comments_1.createComment);
// Route to retrieve comments with pagination and sorting options.
router.get("/", (0, rateLimit_1.rateLimiter)("5m", 100), comments_1.fetchManyComments);
// Route to fetch a single comment by foreign id
router.get("/by-foreign-id", (0, rateLimit_1.rateLimiter)("5m", 100), comments_1.fetchCommentByForeignId);
// Route to fetch a single comment by id
router.get("/:commentId", (0, rateLimit_1.rateLimiter)("5m", 100), comments_1.fetchComment);
// Route for updating the content of a comment.
router.patch("/:commentId", (0, rateLimit_1.rateLimiter)("5m", 50), requireUserAuth_1.default, comments_1.updateComment);
// Route for upvoting a comment.
router.patch("/:commentId/upvote", (0, rateLimit_1.rateLimiter)("5m", 50), requireUserAuth_1.default, comments_1.upvoteComment);
// Route for removing a comment upvote.
router.patch("/:commentId/remove-upvote", (0, rateLimit_1.rateLimiter)("5m", 25), requireUserAuth_1.default, comments_1.removeCommentUpvote);
// Route for downvoting a comment.
router.patch("/:commentId/downvote", (0, rateLimit_1.rateLimiter)("5m", 50), requireUserAuth_1.default, comments_1.downvoteComment);
// Route for removing a comment downvote.
router.patch("/:commentId/remove-downvote", (0, rateLimit_1.rateLimiter)("5m", 25), requireUserAuth_1.default, comments_1.removeCommentDownvote);
// Route for deleting a comment and its replies.
router.delete("/:commentId", (0, rateLimit_1.rateLimiter)("5m", 10), requireUserAuth_1.default, comments_1.deleteComment);
exports.default = router;