@replyke/express
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
39 lines (38 loc) • 2.75 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 entities_1 = require("../controllers/entities");
const requireUserAuth_1 = __importDefault(require("../../middleware/requireUserAuth"));
const optionalUserAuth_1 = __importDefault(require("../../middleware/optionalUserAuth"));
const rateLimit_1 = require("../../utils/rateLimit");
const fetchTopComment_1 = __importDefault(require("../controllers/entities/fetchTopComment"));
const router = (0, express_1.Router)();
// Route to create a new entity
router.post("/", (0, rateLimit_1.rateLimiter)("5m", 100), optionalUserAuth_1.default, entities_1.createEntity);
// Route to fetch a many entities with filtering and pagination
router.get("/", (0, rateLimit_1.rateLimiter)("5m", 100), optionalUserAuth_1.default, entities_1.fetchManyEntities);
// Route to fetch a single entity by its foreign ID, or create a new blank one if desired and it doesn't exist.
router.get("/by-foreign-id", (0, rateLimit_1.rateLimiter)("5m", 1000), entities_1.fetchEntityByForeignId);
// Route to fetch a single entity by its short ID
router.get("/by-short-id", (0, rateLimit_1.rateLimiter)("5m", 1000), entities_1.fetchEntityByShortId);
// Route to fetch a single entity by its ID
router.get("/:entityId", (0, rateLimit_1.rateLimiter)("5m", 1000), entities_1.fetchEntity);
router.get("/:entityId/top-comment", fetchTopComment_1.default);
// Route to upvote an entity.
router.patch("/:entityId/upvote", (0, rateLimit_1.rateLimiter)("5m", 100), requireUserAuth_1.default, entities_1.upvoteEntity);
// Route to remove upvote from entity.
router.patch("/:entityId/remove-upvote", (0, rateLimit_1.rateLimiter)("5m", 50), requireUserAuth_1.default, entities_1.removeEntityUpvote);
// Route to downvote an entity.
router.patch("/:entityId/downvote", (0, rateLimit_1.rateLimiter)("5m", 100), requireUserAuth_1.default, entities_1.downvoteEntity);
// Route to remove downvote from entity.
router.patch("/:entityId/remove-downvote", (0, rateLimit_1.rateLimiter)("10m", 50), requireUserAuth_1.default, entities_1.removeEntityDownvote);
// Route to increment views of an entity.
router.patch("/:entityId/increment-views", (0, rateLimit_1.rateLimiter)("5m", 1000), entities_1.incrementEntityViews);
// Route to update an entity
router.patch("/:entityId", (0, rateLimit_1.rateLimiter)("5m", 200), requireUserAuth_1.default, entities_1.updateEntity);
// Route to delete an entity
router.delete("/:entityId", (0, rateLimit_1.rateLimiter)("5m", 10), requireUserAuth_1.default, entities_1.deleteEntity);
exports.default = router;