@replyke/express
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
33 lines (32 loc) • 2.02 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 users_1 = require("../controllers/users");
const requireUserAuth_1 = __importDefault(require("../../middleware/requireUserAuth"));
const rateLimit_1 = require("../../utils/rateLimit");
const router = (0, express_1.Router)();
// Route to get user mentions suggestions
router.get("/suggestions", (0, rateLimit_1.rateLimiter)("5m", 50), users_1.fetchUserSuggestions);
// Route to check if a username is available
router.get("/check-username", (0, rateLimit_1.rateLimiter)("5m", 100), users_1.checkUsernameAvailability);
// Route to fetch a user by their foreignId
router.get("/by-foreign-id", (0, rateLimit_1.rateLimiter)("5m", 100), users_1.fetchUserByForeignId);
// Route to fetch a user by id
router.get("/:userId", (0, rateLimit_1.rateLimiter)("5m", 100), users_1.fetchUser);
// Route to get count of all followers of a user
router.get("/:userId/followers-count", (0, rateLimit_1.rateLimiter)("5m", 100), users_1.fetchFollowersCount);
// Route to get count of all accounts a user follows
router.get("/:userId/following-count", (0, rateLimit_1.rateLimiter)("5m", 100), users_1.fetchFollowingCount);
// Route for updating a user
router.patch("/:userId", (0, rateLimit_1.rateLimiter)("5m", 50), requireUserAuth_1.default, users_1.updateUser);
//////// ** Follow routes ** ////////
// Route to follow a user
router.post("/:userId/follow", (0, rateLimit_1.rateLimiter)("5m", 100), requireUserAuth_1.default, users_1.createFollow);
// Route to get a follow relationship
router.get("/:userId/follow", (0, rateLimit_1.rateLimiter)("5m", 100), requireUserAuth_1.default, users_1.fetchFollow);
// Route to unfollow a user
router.delete("/:userId/follow", (0, rateLimit_1.rateLimiter)("5m", 100), requireUserAuth_1.default, users_1.deleteFollow);
exports.default = router;