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.
 
 
 
 

56 lines
2.3 KiB

import {Router} from "express";
import {addLogger} from "../middlewares/logger.middleware.js";
import {isTokenValid} from "../middlewares/jwt.middleware.js";
import {
del,
getByChannel,
getById,
update,
upload,
uploadThumbnail,
updateVideo,
toggleLike,
addTags
} from "../controllers/video.controller.js";
import {
doVideoExists,
doVideoExistsParam,
isOwner,
Video,
VideoCreate,
VideoThumbnail
} from "../middlewares/video.middleware.js";
import {Channel, doChannelExistBody, doChannelExists} from "../middlewares/channel.middleware.js";
import {thumbnailUpload, videoUpload} from "../middlewares/file.middleware.js";
import validator from "../middlewares/error.middleware.js";
const router = Router();
// UPLOAD VIDEO
router.post("/", [videoUpload.single('file'), addLogger, isTokenValid, VideoCreate.title, VideoCreate.description, VideoCreate.visibility, VideoCreate.channel, validator, doChannelExistBody, isOwner], upload);
// UPLOAD/UPDATE THUMBNAIL
router.post("/thumbnail", [thumbnailUpload.single('file'), addLogger, isTokenValid, VideoThumbnail.video, Video.channel, validator, doChannelExistBody, isOwner, doVideoExists], uploadThumbnail )
// GET BY ID
router.get("/:id", [addLogger, isTokenValid, Video.id, validator, doVideoExistsParam], getById);
// GET BY CHANNEL
router.get("/channel/:id", [addLogger, isTokenValid, Channel.id, validator, doChannelExists], getByChannel);
// UPDATE VIDEO DATA
router.put("/:id", [addLogger, isTokenValid, Video.id, VideoCreate.title, VideoCreate.description, VideoCreate.visibility, VideoCreate.channel, validator, doVideoExistsParam, doChannelExistBody, isOwner], update);
// UPDATE VIDEO
router.put("/:id/video", [videoUpload.single("file"), addLogger, isTokenValid, Video.id, Video.channel, validator, doVideoExistsParam, doChannelExistBody, isOwner ], updateVideo);
// DELETE VIDEO
router.delete("/:id", [addLogger, isTokenValid, Video.id, Video.channel, validator, doVideoExistsParam, doChannelExistBody, isOwner], del);
// SWITCH LIKE
router.get("/:id/like", [addLogger, isTokenValid, Video.id, validator, doVideoExistsParam], toggleLike);
// UPDATE TAGS
router.put("/:id/tags", [addLogger, isTokenValid, Video.id, Video.tags, validator, doVideoExistsParam, isOwner], addTags);
export default router;