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.
65 lines
2.7 KiB
65 lines
2.7 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, getSimilarVideos, addViews, getLikesPerDay
|
|
} 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, 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);
|
|
|
|
// GET SIMILAR VIDEOS
|
|
router.get("/:id/similar", [addLogger, Video.id, validator, doVideoExistsParam], getSimilarVideos);
|
|
|
|
// ADD VIEWS
|
|
router.get("/:id/views", [addLogger, isTokenValid, Video.id, validator, doVideoExistsParam], addViews);
|
|
|
|
// GET LIKE PER DAY
|
|
router.get("/:id/likes/day", [addLogger, isTokenValid, Video.id, validator, doVideoExistsParam], getLikesPerDay);
|
|
|
|
|
|
export default router;
|