Video lib/model/reqvalidator refractoring

pull/10/head
Chocobozzz 2016-03-16 21:37:17 +01:00
parent 86e054b20f
commit 5101105ef9
3 changed files with 23 additions and 41 deletions

View File

@ -12,10 +12,21 @@ var Videos = require('../models/videos')
var uploadDir = path.join(__dirname, '..', '..', config.get('storage.uploads'))
var videos = {
getVideoState: getVideoState,
seed: seed,
seedAllExisting: seedAllExisting
}
function getVideoState (video, callback) {
var exist = (video !== null)
var owned = false
if (exist === true) {
owned = (video.namePath !== null)
}
return callback({ exist: exist, owned: owned })
}
function seed (path, callback) {
logger.info('Seeding %s...', path)

View File

@ -2,6 +2,7 @@
var checkErrors = require('./utils').checkErrors
var logger = require('../../helpers/logger')
var videos = require('../../lib/videos')
var Videos = require('../../models/videos')
var reqValidatorsVideos = {
@ -28,17 +29,19 @@ function videosGet (req, res, next) {
logger.debug('Checking videosGet parameters', { parameters: req.params })
checkErrors(req, res, function () {
Videos.getVideoState(req.params.id, function (err, state) {
Videos.get(req.params.id, function (err, video) {
if (err) {
logger.error('Error in videosGet request validator.', { error: err })
res.sendStatus(500)
}
videos.getVideoState(video, function (state) {
if (state.exist === false) return res.status(404).send('Video not found')
next()
})
})
})
}
function videosRemove (req, res, next) {
@ -47,18 +50,20 @@ function videosRemove (req, res, next) {
logger.debug('Checking videosRemove parameters', { parameters: req.params })
checkErrors(req, res, function () {
Videos.getVideoState(req.params.id, function (err, state) {
Videos.get(req.params.id, function (err, video) {
if (err) {
logger.error('Error in videosRemove request validator.', { error: err })
res.sendStatus(500)
}
videos.getVideoState(video, function (state) {
if (state.exist === false) return res.status(404).send('Video not found')
else if (state.owned === false) return res.status(403).send('Cannot remove video of another pod')
next()
})
})
})
}
function videosSearch (req, res, next) {

View File

@ -31,8 +31,6 @@ var Videos = {
add: add,
addRemotes: addRemotes,
get: get,
getVideoState: getVideoState,
isOwned: isOwned,
list: list,
listOwned: listOwned,
removeOwned: removeOwned,
@ -102,38 +100,6 @@ function get (id, callback) {
})
}
function getVideoState (id, callback) {
get(id, function (err, video) {
if (err) return callback(err)
var exist = (video !== null)
var owned = false
if (exist === true) {
owned = (video.namePath !== null)
}
return callback(null, { exist: exist, owned: owned })
})
}
function isOwned (id, callback) {
VideosDB.findById(id, function (err, video) {
if (err || !video) {
if (!err) err = new Error('Cannot find this video.')
logger.error('Cannot find this video.')
return callback(err)
}
if (video.namePath === null) {
var error_string = 'Cannot remove the video of another pod.'
logger.error(error_string)
return callback(new Error(error_string), false, video)
}
callback(null, true, video)
})
}
function list (callback) {
VideosDB.find(function (err, videos_list) {
if (err) {