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.
33 lines
1.6 KiB
33 lines
1.6 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} 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);
|
|
|
|
// 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;
|