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.
 
 
 
 

37 lines
1.7 KiB

import {Router} from 'express';
import {addLogger} from "../middlewares/logger.middleware.js";
import {isTokenValid} from "../middlewares/jwt.middleware.js";
import {doPlaylistExists, Playlist, isOwner, isVideoInPlaylist} from "../middlewares/playlist.middleware.js";
import validator from "../middlewares/error.middleware.js";
import {addVideo, create, del, deleteVideo, getById, getByUser, update, getSeeLater} from "../controllers/playlist.controller.js";
import {doVideoExists, Video} from "../middlewares/video.middleware.js";
import {doUserExists, User, isOwner as isOwnerUser} from "../middlewares/user.middleware.js";
const router = new Router();
// CREATE PLAYLIST
router.post("/", [addLogger, isTokenValid, Playlist.name, validator], create);
// GET SEE LATER PLAYLIST
router.get("/see-later", [addLogger, isTokenValid], getSeeLater);
// ADD VIDEO TO PLAYLIST
router.post("/:id", [addLogger, isTokenValid, Playlist.id, Video.idBody, validator, doPlaylistExists, isOwner, doVideoExists], addVideo);
// GET BY USER
router.get("/user/:id", [addLogger, isTokenValid, User.id, validator, doUserExists, isOwnerUser], getByUser);
// GET BY ID
router.get("/:id", [addLogger, isTokenValid, Playlist.id, validator, doPlaylistExists, isOwner], getById);
// UPDATE
router.put("/:id", [addLogger, isTokenValid, Playlist.id, Playlist.name, validator, doPlaylistExists, isOwner], update);
// DELETE VIDEO
router.delete("/:id/video/:videoId", [addLogger, isTokenValid, Video.id, Playlist.videoId, validator, doPlaylistExists, isOwner, isVideoInPlaylist], deleteVideo);
// DELETE PLAYLIST
router.delete("/:id", [addLogger, isTokenValid, Playlist.id, validator, doPlaylistExists, isOwner], del);
export default router;