aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/helpers/custom-validators/remote/videos.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/helpers/custom-validators/remote/videos.js')
-rw-r--r--server/helpers/custom-validators/remote/videos.js74
1 files changed, 74 insertions, 0 deletions
diff --git a/server/helpers/custom-validators/remote/videos.js b/server/helpers/custom-validators/remote/videos.js
new file mode 100644
index 000000000..c3ca00e1c
--- /dev/null
+++ b/server/helpers/custom-validators/remote/videos.js
@@ -0,0 +1,74 @@
1'use strict'
2
3const videosValidators = require('../videos')
4const miscValidators = require('../misc')
5
6const remoteVideosValidators = {
7 isEachRemoteRequestVideosValid
8}
9
10function isEachRemoteRequestVideosValid (requests) {
11 return miscValidators.isArray(requests) &&
12 requests.every(function (request) {
13 const video = request.data
14 return (
15 isRequestTypeAddValid(request.type) &&
16 videosValidators.isVideoAuthorValid(video.author) &&
17 videosValidators.isVideoDateValid(video.createdAt) &&
18 videosValidators.isVideoDateValid(video.updatedAt) &&
19 videosValidators.isVideoDescriptionValid(video.description) &&
20 videosValidators.isVideoDurationValid(video.duration) &&
21 videosValidators.isVideoInfoHashValid(video.infoHash) &&
22 videosValidators.isVideoNameValid(video.name) &&
23 videosValidators.isVideoTagsValid(video.tags) &&
24 videosValidators.isVideoThumbnailDataValid(video.thumbnailData) &&
25 videosValidators.isVideoRemoteIdValid(video.remoteId) &&
26 videosValidators.isVideoExtnameValid(video.extname)
27 ) ||
28 (
29 isRequestTypeUpdateValid(request.type) &&
30 videosValidators.isVideoDateValid(video.createdAt) &&
31 videosValidators.isVideoDateValid(video.updatedAt) &&
32 videosValidators.isVideoDescriptionValid(video.description) &&
33 videosValidators.isVideoDurationValid(video.duration) &&
34 videosValidators.isVideoInfoHashValid(video.infoHash) &&
35 videosValidators.isVideoNameValid(video.name) &&
36 videosValidators.isVideoTagsValid(video.tags) &&
37 videosValidators.isVideoRemoteIdValid(video.remoteId) &&
38 videosValidators.isVideoExtnameValid(video.extname)
39 ) ||
40 (
41 isRequestTypeRemoveValid(request.type) &&
42 videosValidators.isVideoNameValid(video.name) &&
43 videosValidators.isVideoRemoteIdValid(video.remoteId)
44 ) ||
45 (
46 isRequestTypeReportAbuseValid(request.type) &&
47 videosValidators.isVideoRemoteIdValid(request.data.videoRemoteId) &&
48 videosValidators.isVideoAbuseReasonValid(request.data.reportReason) &&
49 videosValidators.isVideoAbuseReporterUsernameValid(request.data.reporterUsername)
50 )
51 })
52}
53
54// ---------------------------------------------------------------------------
55
56module.exports = remoteVideosValidators
57
58// ---------------------------------------------------------------------------
59
60function isRequestTypeAddValid (value) {
61 return value === 'add'
62}
63
64function isRequestTypeUpdateValid (value) {
65 return value === 'update'
66}
67
68function isRequestTypeRemoveValid (value) {
69 return value === 'remove'
70}
71
72function isRequestTypeReportAbuseValid (value) {
73 return value === 'report-abuse'
74}