X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fvideos.js;h=4a6a623267814bd1727a7417fc76c0e4edf5b672;hb=49abbbbedca83b9031d3e2eb3ae9ad9b6a7d96ed;hp=39a19cbd7a3dd49ee1982fac3ccc733077b69489;hpb=e4c556196d7b31111f17596840d2e1d60caa7dcb;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/videos.js b/server/helpers/custom-validators/videos.js index 39a19cbd7..4a6a62326 100644 --- a/server/helpers/custom-validators/videos.js +++ b/server/helpers/custom-validators/videos.js @@ -8,44 +8,46 @@ const miscValidators = require('./misc') const VIDEOS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEOS const videosValidators = { - isEachRemoteVideosValid: isEachRemoteVideosValid, - isVideoAuthorValid: isVideoAuthorValid, - isVideoDateValid: isVideoDateValid, - isVideoDescriptionValid: isVideoDescriptionValid, - isVideoDurationValid: isVideoDurationValid, - isVideoMagnetUriValid: isVideoMagnetUriValid, - isVideoNameValid: isVideoNameValid, - isVideoPodUrlValid: isVideoPodUrlValid, - isVideoTagsValid: isVideoTagsValid, - isVideoThumbnailValid: isVideoThumbnailValid, - isVideoThumbnail64Valid: isVideoThumbnail64Valid + isEachRemoteVideosValid, + isVideoAuthorValid, + isVideoDateValid, + isVideoDescriptionValid, + isVideoDurationValid, + isVideoMagnetValid, + isVideoNameValid, + isVideoPodHostValid, + isVideoTagsValid, + isVideoThumbnailValid, + isVideoThumbnail64Valid } function isEachRemoteVideosValid (requests) { - return requests.every(function (request) { - const video = request.data - return ( - isRequestTypeAddValid(request.type) && - isVideoAuthorValid(video.author) && - isVideoDateValid(video.createdDate) && - isVideoDescriptionValid(video.description) && - isVideoDurationValid(video.duration) && - isVideoMagnetUriValid(video.magnetUri) && - isVideoNameValid(video.name) && - isVideoPodUrlValid(video.podUrl) && - isVideoTagsValid(video.tags) && - isVideoThumbnail64Valid(video.thumbnailBase64) - ) || - ( - isRequestTypeRemoveValid(request.type) && - isVideoNameValid(video.name) && - isVideoMagnetUriValid(video.magnetUri) - ) - }) + return miscValidators.isArray(requests) && + requests.every(function (request) { + const video = request.data + return ( + isRequestTypeAddValid(request.type) && + isVideoAuthorValid(video.author) && + isVideoDateValid(video.createdDate) && + isVideoDescriptionValid(video.description) && + isVideoDurationValid(video.duration) && + isVideoMagnetValid(video.magnet) && + isVideoNameValid(video.name) && + isVideoPodHostValid(video.podHost) && + isVideoTagsValid(video.tags) && + isVideoThumbnail64Valid(video.thumbnailBase64) && + isVideoRemoteIdValid(video.remoteId) + ) || + ( + isRequestTypeRemoveValid(request.type) && + isVideoNameValid(video.name) && + isVideoRemoteIdValid(video.remoteId) + ) + }) } function isVideoAuthorValid (value) { - return usersValidators.isUserUsernameValid(usersValidators) + return usersValidators.isUserUsernameValid(value) } function isVideoDateValid (value) { @@ -60,15 +62,15 @@ function isVideoDurationValid (value) { return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.DURATION) } -function isVideoMagnetUriValid (value) { - return validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.MAGNET_URI) +function isVideoMagnetValid (value) { + return validator.isLength(value.infoHash, VIDEOS_CONSTRAINTS_FIELDS.MAGNET.INFO_HASH) } function isVideoNameValid (value) { return validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.NAME) } -function isVideoPodUrlValid (value) { +function isVideoPodHostValid (value) { // TODO: set options (TLD...) return validator.isURL(value) } @@ -91,6 +93,10 @@ function isVideoThumbnail64Valid (value) { validator.isByteLength(value, VIDEOS_CONSTRAINTS_FIELDS.THUMBNAIL64) } +function isVideoRemoteIdValid (value) { + return validator.isMongoId(value) +} + // --------------------------------------------------------------------------- module.exports = videosValidators