You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.5 KiB
74 lines
2.5 KiB
import {Router} from "express";
|
|
import {
|
|
register,
|
|
login,
|
|
getById,
|
|
getByUsername,
|
|
update,
|
|
deleteUser,
|
|
getChannel, getHistory,
|
|
isSubscribed,
|
|
verifyEmail,
|
|
searchByUsername,
|
|
getAllSubscriptions,
|
|
getAllSubscriptionVideos
|
|
} from "../controllers/user.controller.js";
|
|
import {
|
|
UserRegister,
|
|
doEmailExists,
|
|
doUsernameExists,
|
|
doUserExists,
|
|
isOwner,
|
|
UserLogin,
|
|
User,
|
|
UserRequest,
|
|
UserSearch
|
|
} from "../middlewares/user.middleware.js";
|
|
import validator from "../middlewares/error.middleware.js";
|
|
import {isTokenValid} from "../middlewares/jwt.middleware.js";
|
|
import {addLogger} from "../middlewares/logger.middleware.js";
|
|
import {profileUpload} from "../middlewares/file.middleware.js";
|
|
import {Channel} from "../middlewares/channel.middleware.js";
|
|
|
|
const router = Router();
|
|
|
|
// REGISTER A USER+
|
|
router.post("/", [profileUpload.single("profile"), addLogger, UserRegister.email, UserRegister.username, UserRegister.password, validator, doEmailExists, doUsernameExists], register);
|
|
|
|
// LOGIN A USER+
|
|
router.post("/login", [addLogger, UserLogin.username, UserLogin.password, validator], login)
|
|
|
|
// SEARCH BY USERNAME
|
|
router.get("/search", [addLogger, isTokenValid, UserSearch.username, validator], searchByUsername);
|
|
|
|
// GET USER BY ID+
|
|
router.get("/:id", [addLogger, isTokenValid, User.id, validator], getById)
|
|
|
|
// GET USER BY USERNAME+
|
|
router.get("/username/:username", [addLogger, isTokenValid, UserRequest.username, validator], getByUsername);
|
|
|
|
// UPDATE USER+
|
|
router.put("/:id", [addLogger, isTokenValid, User.id, UserRegister.email, UserRegister.username, validator, doUserExists, isOwner], update);
|
|
|
|
// DELETE USER+
|
|
router.delete("/:id", [addLogger, isTokenValid, User.id, validator, doUserExists, isOwner], deleteUser);
|
|
|
|
// GET USER CHANNEL
|
|
router.get("/:id/channel", [addLogger, isTokenValid, User.id, validator], getChannel);
|
|
|
|
// GET USER HISTORY
|
|
router.get("/:id/history", [addLogger, isTokenValid, User.id, validator], getHistory);
|
|
|
|
// CHECK IF SUBSCRIBED TO CHANNEL
|
|
router.get("/:id/channel/subscribed", [addLogger, isTokenValid, User.id, Channel.id, validator], isSubscribed)
|
|
|
|
// VERIFY EMAIL
|
|
router.post("/verify-email", [addLogger, validator], verifyEmail);
|
|
|
|
// GET ALL SUBSCRIPTIONS
|
|
router.get("/:id/subscriptions", [addLogger, isTokenValid, User.id, validator, doUserExists], getAllSubscriptions);
|
|
|
|
// GET ALL SUBSCRIPTIONS VIDEOS
|
|
router.get("/:id/subscriptions/videos", [addLogger, isTokenValid, User.id, validator, doUserExists], getAllSubscriptionVideos);
|
|
|
|
export default router;
|