diff options
Diffstat (limited to 'server/helpers/custom-validators/videos.ts')
-rw-r--r-- | server/helpers/custom-validators/videos.ts | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/server/helpers/custom-validators/videos.ts b/server/helpers/custom-validators/videos.ts index 714f7ac95..95e256b8f 100644 --- a/server/helpers/custom-validators/videos.ts +++ b/server/helpers/custom-validators/videos.ts | |||
@@ -3,12 +3,11 @@ import 'express-validator' | |||
3 | import { values } from 'lodash' | 3 | import { values } from 'lodash' |
4 | import 'multer' | 4 | import 'multer' |
5 | import * as validator from 'validator' | 5 | import * as validator from 'validator' |
6 | import { UserRight, VideoPrivacy, VideoRateType } from '../../../shared' | 6 | import { UserRight, VideoFilter, VideoPrivacy, VideoRateType } from '../../../shared' |
7 | import { | 7 | import { |
8 | CONSTRAINTS_FIELDS, | 8 | CONSTRAINTS_FIELDS, MIMETYPES, |
9 | VIDEO_CATEGORIES, | 9 | VIDEO_CATEGORIES, |
10 | VIDEO_LICENCES, | 10 | VIDEO_LICENCES, |
11 | VIDEO_MIMETYPE_EXT, | ||
12 | VIDEO_PRIVACIES, | 11 | VIDEO_PRIVACIES, |
13 | VIDEO_RATE_TYPES, | 12 | VIDEO_RATE_TYPES, |
14 | VIDEO_STATES | 13 | VIDEO_STATES |
@@ -22,6 +21,10 @@ import { fetchVideo, VideoFetchType } from '../video' | |||
22 | 21 | ||
23 | const VIDEOS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEOS | 22 | const VIDEOS_CONSTRAINTS_FIELDS = CONSTRAINTS_FIELDS.VIDEOS |
24 | 23 | ||
24 | function isVideoFilterValid (filter: VideoFilter) { | ||
25 | return filter === 'local' || filter === 'all-local' | ||
26 | } | ||
27 | |||
25 | function isVideoCategoryValid (value: any) { | 28 | function isVideoCategoryValid (value: any) { |
26 | return value === null || VIDEO_CATEGORIES[ value ] !== undefined | 29 | return value === null || VIDEO_CATEGORIES[ value ] !== undefined |
27 | } | 30 | } |
@@ -79,10 +82,15 @@ function isVideoRatingTypeValid (value: string) { | |||
79 | return value === 'none' || values(VIDEO_RATE_TYPES).indexOf(value as VideoRateType) !== -1 | 82 | return value === 'none' || values(VIDEO_RATE_TYPES).indexOf(value as VideoRateType) !== -1 |
80 | } | 83 | } |
81 | 84 | ||
82 | const videoFileTypes = Object.keys(VIDEO_MIMETYPE_EXT).map(m => `(${m})`) | 85 | function isVideoFileExtnameValid (value: string) { |
83 | const videoFileTypesRegex = videoFileTypes.join('|') | 86 | return exists(value) && MIMETYPES.VIDEO.EXT_MIMETYPE[value] !== undefined |
87 | } | ||
84 | 88 | ||
85 | function isVideoFile (files: { [ fieldname: string ]: Express.Multer.File[] } | Express.Multer.File[]) { | 89 | function isVideoFile (files: { [ fieldname: string ]: Express.Multer.File[] } | Express.Multer.File[]) { |
90 | const videoFileTypesRegex = Object.keys(MIMETYPES.VIDEO.MIMETYPE_EXT) | ||
91 | .map(m => `(${m})`) | ||
92 | .join('|') | ||
93 | |||
86 | return isFileValid(files, videoFileTypesRegex, 'videofile', null) | 94 | return isFileValid(files, videoFileTypesRegex, 'videofile', null) |
87 | } | 95 | } |
88 | 96 | ||
@@ -217,6 +225,7 @@ export { | |||
217 | isVideoStateValid, | 225 | isVideoStateValid, |
218 | isVideoViewsValid, | 226 | isVideoViewsValid, |
219 | isVideoRatingTypeValid, | 227 | isVideoRatingTypeValid, |
228 | isVideoFileExtnameValid, | ||
220 | isVideoDurationValid, | 229 | isVideoDurationValid, |
221 | isVideoTagValid, | 230 | isVideoTagValid, |
222 | isVideoPrivacyValid, | 231 | isVideoPrivacyValid, |
@@ -225,5 +234,6 @@ export { | |||
225 | isVideoExist, | 234 | isVideoExist, |
226 | isVideoImage, | 235 | isVideoImage, |
227 | isVideoChannelOfAccountExist, | 236 | isVideoChannelOfAccountExist, |
228 | isVideoSupportValid | 237 | isVideoSupportValid, |
238 | isVideoFilterValid | ||
229 | } | 239 | } |