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.
52 lines
1.7 KiB
52 lines
1.7 KiB
import {Router} from "express";
|
|
import {
|
|
register,
|
|
login,
|
|
getById,
|
|
getByUsername,
|
|
update,
|
|
deleteUser,
|
|
getChannel, getHistory
|
|
} from "../controllers/user.controller.js";
|
|
import {
|
|
UserRegister,
|
|
doEmailExists,
|
|
doUsernameExists,
|
|
doUserExists,
|
|
isOwner,
|
|
UserLogin,
|
|
User,
|
|
UserRequest
|
|
} 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";
|
|
|
|
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)
|
|
|
|
// 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, UserRegister.password, 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);
|
|
|
|
export default router;
|