UNPKG

@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
"use strict"; 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;