X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fvideos.js;h=8495e9665965d3b9a759c6d2b09f1829a43e38ad;hb=6f0c39e2de400685b7baf8340b9e132f2659365a;hp=1d844118b0e888d5f3775bc3cff767043086cc93;hpb=9e167724f7e933f41d9ea2e1c31772bf4c560a28;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/videos.js b/server/helpers/custom-validators/videos.js index 1d844118b..8495e9665 100644 --- a/server/helpers/custom-validators/videos.js +++ b/server/helpers/custom-validators/videos.js @@ -1,16 +1,20 @@ 'use strict' const validator = require('express-validator').validator +const values = require('lodash/values') const constants = require('../../initializers/constants') const usersValidators = require('./users') const miscValidators = require('./misc') const VIDEOS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEOS const VIDEO_ABUSES_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEO_ABUSES +const VIDEO_EVENTS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEO_EVENTS const videosValidators = { isVideoAuthorValid, isVideoDateValid, + isVideoCategoryValid, + isVideoLicenceValid, isVideoDescriptionValid, isVideoDurationValid, isVideoInfoHashValid, @@ -25,7 +29,9 @@ const videosValidators = { isVideoFile, isVideoViewsValid, isVideoLikesValid, - isVideoDislikesValid + isVideoRatingTypeValid, + isVideoDislikesValid, + isVideoEventCountValid } function isVideoAuthorValid (value) { @@ -36,6 +42,14 @@ function isVideoDateValid (value) { return validator.isDate(value) } +function isVideoCategoryValid (value) { + return constants.VIDEO_CATEGORIES[value] !== undefined +} + +function isVideoLicenceValid (value) { + return constants.VIDEO_LICENCES[value] !== undefined +} + function isVideoDescriptionValid (value) { return validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.DESCRIPTION) } @@ -60,8 +74,7 @@ function isVideoTagsValid (tags) { return miscValidators.isArray(tags) && validator.isInt(tags.length, VIDEOS_CONSTRAINTS_FIELDS.TAGS) && tags.every(function (tag) { - return validator.isAlphanumeric(tag) && - validator.isLength(tag, VIDEOS_CONSTRAINTS_FIELDS.TAG) + return validator.isLength(tag, VIDEOS_CONSTRAINTS_FIELDS.TAG) }) } @@ -86,15 +99,23 @@ function isVideoAbuseReporterUsernameValid (value) { } function isVideoViewsValid (value) { - return validator.isInt(value, { min: 0 }) + return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.VIEWS) } function isVideoLikesValid (value) { - return validator.isInt(value, { min: 0 }) + return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.LIKES) } function isVideoDislikesValid (value) { - return validator.isInt(value, { min: 0 }) + return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.DISLIKES) +} + +function isVideoEventCountValid (value) { + return validator.isInt(value + '', VIDEO_EVENTS_CONSTRAINTS_FIELDS.COUNT) +} + +function isVideoRatingTypeValid (value) { + return values(constants.VIDEO_RATE_TYPES).indexOf(value) !== -1 } function isVideoFile (value, files) {