}
function updateVideo (req, res, next) {
- let videoInstance = res.locals.video
+ const videoInstance = res.locals.video
const videoInfosToUpdate = req.body
waterfall([
}
function getVideo (req, res, next) {
- db.Video.loadAndPopulateAuthorAndPodAndTags(req.params.id, function (err, video) {
- if (err) return next(err)
-
- if (!video) {
- return res.type('json').status(204).end()
- }
-
- res.json(video.toFormatedJSON())
- })
+ const videoInstance = res.locals.video
+ res.json(videoInstance.toFormatedJSON())
}
function listVideos (req, res, next) {
}
function removeVideo (req, res, next) {
- const videoId = req.params.id
+ const videoInstance = res.locals.video
- waterfall([
- function loadVideo (callback) {
- db.Video.load(videoId, function (err, video) {
- return callback(err, video)
- })
- },
-
- function deleteVideo (video, callback) {
- // Informations to other pods will be sent by the afterDestroy video hook
- video.destroy().asCallback(callback)
- }
- ], function andFinally (err) {
+ videoInstance.destroy().asCallback(function (err) {
if (err) {
logger.error('Errors when removed the video.', { error: err })
return next(err)
logger.debug('Checking videosRemove parameters', { parameters: req.params })
checkErrors(req, res, function () {
- db.Video.loadAndPopulateAuthor(req.params.id, function (err, video) {
- if (err) {
- logger.error('Error in videosRemove request validator.', { error: err })
- return res.sendStatus(500)
+ checkVideoExists(req.params.id, res, function () {
+ // We need to make additional checks
+
+ if (res.locals.video.isOwned() === false) {
+ return res.status(403).send('Cannot remove video of another pod')
}
- if (!video) return res.status(404).send('Video not found')
- else if (video.isOwned() === false) return res.status(403).send('Cannot remove video of another pod')
- else if (video.Author.name !== res.locals.oauth.token.user.username) return res.status(403).send('Cannot remove video of another user')
+ if (res.locals.video.authorId !== res.locals.oauth.token.User.id) {
+ return res.status(403).send('Cannot remove video of another user')
+ }
next()
})