X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Fvideos.ts;h=07aadadb100f3596d0008d43def68431bd409f43;hb=40ff57078e15d5b86ee6b71e198b95d3feb78eaf;hp=f3fdcaf2df00a9abb1885ab83cc9fadc399e7dfb;hpb=fd45e8f43c2638478599ca75632518054461da85;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/videos.ts b/server/helpers/custom-validators/videos.ts index f3fdcaf2d..07aadadb1 100644 --- a/server/helpers/custom-validators/videos.ts +++ b/server/helpers/custom-validators/videos.ts @@ -1,24 +1,23 @@ -import { values } from 'lodash' -import * as validator from 'validator' import * as Promise from 'bluebird' import * as express from 'express' import 'express-validator' +import { values } from 'lodash' import 'multer' - +import * as validator from 'validator' +import { VideoRateType } from '../../../shared' +import { logger } from '../../helpers' import { CONSTRAINTS_FIELDS, + database as db, VIDEO_CATEGORIES, - VIDEO_LICENCES, VIDEO_LANGUAGES, - VIDEO_RATE_TYPES, + VIDEO_LICENCES, VIDEO_PRIVACIES, - database as db + VIDEO_RATE_TYPES } from '../../initializers' -import { isUserUsernameValid } from './users' -import { isArray, exists } from './misc' import { VideoInstance } from '../../models' -import { logger } from '../../helpers' -import { VideoRateType } from '../../../shared' +import { isActivityPubUrlValid } from './activitypub/misc' +import { exists, isArray } from './misc' const VIDEOS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEOS const VIDEO_ABUSES_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEO_ABUSES @@ -33,6 +32,10 @@ function isRemoteVideoCategoryValid (value: string) { return validator.isInt('' + value) } +function isVideoUrlValid (value: string) { + return isActivityPubUrlValid(value) +} + function isVideoLicenceValid (value: number) { return VIDEO_LICENCES[value] !== undefined } @@ -64,6 +67,10 @@ function isVideoNSFWValid (value: any) { return typeof value === 'boolean' || (typeof value === 'string' && validator.isBoolean(value)) } +function isVideoDurationValid (value: string) { + return exists(value) && validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.DURATION) +} + function isVideoTruncatedDescriptionValid (value: string) { return exists(value) && validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.TRUNCATED_DESCRIPTION) } @@ -72,20 +79,18 @@ function isVideoDescriptionValid (value: string) { return exists(value) && validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.DESCRIPTION) } -function isVideoDurationValid (value: string) { - return exists(value) && validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.DURATION) -} - function isVideoNameValid (value: string) { return exists(value) && validator.isLength(value, VIDEOS_CONSTRAINTS_FIELDS.NAME) } +function isVideoTagValid (tag: string) { + return exists(tag) && validator.isLength(tag, VIDEOS_CONSTRAINTS_FIELDS.TAG) +} + function isVideoTagsValid (tags: string[]) { return isArray(tags) && validator.isInt(tags.length.toString(), VIDEOS_CONSTRAINTS_FIELDS.TAGS) && - tags.every(tag => { - return exists(tag) && validator.isLength(tag, VIDEOS_CONSTRAINTS_FIELDS.TAG) - }) + tags.every(tag => isVideoTagValid(tag)) } function isVideoThumbnailValid (value: string) { @@ -100,10 +105,6 @@ function isVideoAbuseReasonValid (value: string) { return exists(value) && validator.isLength(value, VIDEO_ABUSES_CONSTRAINTS_FIELDS.REASON) } -function isVideoAbuseReporterUsernameValid (value: string) { - return isUserUsernameValid(value) -} - function isVideoViewsValid (value: string) { return exists(value) && validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.VIEWS) } @@ -159,9 +160,9 @@ function isVideoFileInfoHashValid (value: string) { function checkVideoExists (id: string, res: express.Response, callback: () => void) { let promise: Promise if (validator.isInt(id)) { - promise = db.Video.loadAndPopulateAuthorAndPodAndTags(+id) + promise = db.Video.loadAndPopulateAccountAndServerAndTags(+id) } else { // UUID - promise = db.Video.loadByUUIDAndPopulateAuthorAndPodAndTags(id) + promise = db.Video.loadByUUIDAndPopulateAccountAndServerAndTags(id) } promise.then(video => { @@ -189,7 +190,6 @@ export { isVideoNSFWValid, isVideoTruncatedDescriptionValid, isVideoDescriptionValid, - isVideoDurationValid, isVideoFileInfoHashValid, isVideoNameValid, isVideoTagsValid, @@ -197,7 +197,6 @@ export { isVideoThumbnailDataValid, isVideoFileExtnameValid, isVideoAbuseReasonValid, - isVideoAbuseReporterUsernameValid, isVideoFile, isVideoViewsValid, isVideoLikesValid, @@ -207,9 +206,12 @@ export { isVideoFileSizeValid, isVideoPrivacyValid, isRemoteVideoPrivacyValid, + isVideoDurationValid, isVideoFileResolutionValid, checkVideoExists, + isVideoTagValid, isRemoteVideoCategoryValid, isRemoteVideoLicenceValid, + isVideoUrlValid, isRemoteVideoLanguageValid }