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.
 
 
 
 

39 lines
1.6 KiB

import {Router} from "express";
import {create, del, getAll, getById, getStats, toggleSubscription, update} from "../controllers/channel.controller.js";
import {isTokenValid} from "../middlewares/jwt.middleware.js";
import {
Channel,
ChannelCreate,
doChannelExists,
doChannelNameExists,
doUserHaveChannel, isOwner
} from "../middlewares/channel.middleware.js";
import validator from "../middlewares/error.middleware.js";
import {doUserExistsBody, isOwnerBody} from "../middlewares/user.middleware.js";
import {addLogger} from "../middlewares/logger.middleware.js";
const router = Router();
// CREATE CHANNEL
router.post("/", [addLogger, isTokenValid, ChannelCreate.name, ChannelCreate.description, ChannelCreate.owner, validator, doUserExistsBody, doUserHaveChannel, isOwnerBody, doChannelNameExists], create);
// GET CHANNEL BY ID
router.get("/:id", [addLogger, Channel.id, validator, doChannelExists], getById);
// GET ALL CHANNEL
router.get("/", [addLogger, isTokenValid], getAll);
// UPDATE CHANNEl
router.put("/:id", [addLogger, isTokenValid, Channel.id, ChannelCreate.name, ChannelCreate.description, validator, doChannelExists, isOwner], update);
// DELETE CHANNEL
router.delete("/:id", [addLogger, isTokenValid, Channel.id, validator, doChannelExists, isOwner], del);
// TOGGLE SUBSCRIPTION
router.post("/:id/subscribe", [addLogger, isTokenValid, Channel.id, validator, doChannelExists], toggleSubscription);
// GET TOTAL VIEWS AND SUBSCRIBERS OF THE CHANNEL
router.get("/:id/stats", [addLogger, isTokenValid, Channel.id, validator, doChannelExists, isOwner], getStats);
export default router;