]>
Commit | Line | Data |
---|---|---|
1 | 'use strict' | |
2 | ||
3 | const constants = require('../../../initializers/constants') | |
4 | const videosValidators = require('../videos') | |
5 | const miscValidators = require('../misc') | |
6 | ||
7 | const ENDPOINT_ACTIONS = constants.REQUEST_ENDPOINT_ACTIONS[constants.REQUEST_ENDPOINTS.VIDEOS] | |
8 | ||
9 | const remoteVideosValidators = { | |
10 | isEachRemoteRequestVideosValid | |
11 | } | |
12 | ||
13 | function isEachRemoteRequestVideosValid (requests) { | |
14 | return miscValidators.isArray(requests) && | |
15 | requests.every(function (request) { | |
16 | const video = request.data | |
17 | return ( | |
18 | isRequestTypeAddValid(request.type) && | |
19 | isCommonVideoAttrbiutesValid(video) && | |
20 | videosValidators.isVideoAuthorValid(video.author) && | |
21 | videosValidators.isVideoThumbnailDataValid(video.thumbnailData) | |
22 | ) || | |
23 | ( | |
24 | isRequestTypeUpdateValid(request.type) && | |
25 | isCommonVideoAttrbiutesValid(video) | |
26 | ) || | |
27 | ( | |
28 | isRequestTypeRemoveValid(request.type) && | |
29 | videosValidators.isVideoRemoteIdValid(video.remoteId) | |
30 | ) || | |
31 | ( | |
32 | isRequestTypeReportAbuseValid(request.type) && | |
33 | videosValidators.isVideoRemoteIdValid(request.data.videoRemoteId) && | |
34 | videosValidators.isVideoAbuseReasonValid(request.data.reportReason) && | |
35 | videosValidators.isVideoAbuseReporterUsernameValid(request.data.reporterUsername) | |
36 | ) | |
37 | }) | |
38 | } | |
39 | ||
40 | // --------------------------------------------------------------------------- | |
41 | ||
42 | module.exports = remoteVideosValidators | |
43 | ||
44 | // --------------------------------------------------------------------------- | |
45 | ||
46 | function isCommonVideoAttrbiutesValid (video) { | |
47 | return videosValidators.isVideoDateValid(video.createdAt) && | |
48 | videosValidators.isVideoDateValid(video.updatedAt) && | |
49 | videosValidators.isVideoDescriptionValid(video.description) && | |
50 | videosValidators.isVideoDurationValid(video.duration) && | |
51 | videosValidators.isVideoInfoHashValid(video.infoHash) && | |
52 | videosValidators.isVideoNameValid(video.name) && | |
53 | videosValidators.isVideoTagsValid(video.tags) && | |
54 | videosValidators.isVideoRemoteIdValid(video.remoteId) && | |
55 | videosValidators.isVideoExtnameValid(video.extname) | |
56 | } | |
57 | ||
58 | function isRequestTypeAddValid (value) { | |
59 | return value === ENDPOINT_ACTIONS.ADD | |
60 | } | |
61 | ||
62 | function isRequestTypeUpdateValid (value) { | |
63 | return value === ENDPOINT_ACTIONS.UPDATE | |
64 | } | |
65 | ||
66 | function isRequestTypeRemoveValid (value) { | |
67 | return value === ENDPOINT_ACTIONS.REMOVE | |
68 | } | |
69 | ||
70 | function isRequestTypeReportAbuseValid (value) { | |
71 | return value === ENDPOINT_ACTIONS.REPORT_ABUSE | |
72 | } |