diff options
author | Chocobozzz <florian.bigard@gmail.com> | 2017-02-26 18:57:33 +0100 |
---|---|---|
committer | Chocobozzz <florian.bigard@gmail.com> | 2017-02-26 20:01:26 +0100 |
commit | e4c87ec26962e359d1c70b03ed188a3f19d6a25b (patch) | |
tree | 26fe20e6f600bc6f6f569dde2171b0a2346b135c /server/helpers/custom-validators | |
parent | 9e167724f7e933f41d9ea2e1c31772bf4c560a28 (diff) | |
download | PeerTube-e4c87ec26962e359d1c70b03ed188a3f19d6a25b.tar.gz PeerTube-e4c87ec26962e359d1c70b03ed188a3f19d6a25b.tar.zst PeerTube-e4c87ec26962e359d1c70b03ed188a3f19d6a25b.zip |
Server: implement video views
Diffstat (limited to 'server/helpers/custom-validators')
-rw-r--r-- | server/helpers/custom-validators/remote/videos.js | 24 | ||||
-rw-r--r-- | server/helpers/custom-validators/videos.js | 14 |
2 files changed, 33 insertions, 5 deletions
diff --git a/server/helpers/custom-validators/remote/videos.js b/server/helpers/custom-validators/remote/videos.js index 2e9cf822e..c1786014d 100644 --- a/server/helpers/custom-validators/remote/videos.js +++ b/server/helpers/custom-validators/remote/videos.js | |||
@@ -1,6 +1,7 @@ | |||
1 | 'use strict' | 1 | 'use strict' |
2 | 2 | ||
3 | const has = require('lodash/has') | 3 | const has = require('lodash/has') |
4 | const values = require('lodash/values') | ||
4 | 5 | ||
5 | const constants = require('../../../initializers/constants') | 6 | const constants = require('../../../initializers/constants') |
6 | const videosValidators = require('../videos') | 7 | const videosValidators = require('../videos') |
@@ -10,13 +11,17 @@ const ENDPOINT_ACTIONS = constants.REQUEST_ENDPOINT_ACTIONS[constants.REQUEST_EN | |||
10 | 11 | ||
11 | const remoteVideosValidators = { | 12 | const remoteVideosValidators = { |
12 | isEachRemoteRequestVideosValid, | 13 | isEachRemoteRequestVideosValid, |
13 | isEachRemoteRequestVideosQaduValid | 14 | isEachRemoteRequestVideosQaduValid, |
15 | isEachRemoteRequestVideosEventsValid | ||
14 | } | 16 | } |
15 | 17 | ||
16 | function isEachRemoteRequestVideosValid (requests) { | 18 | function isEachRemoteRequestVideosValid (requests) { |
17 | return miscValidators.isArray(requests) && | 19 | return miscValidators.isArray(requests) && |
18 | requests.every(function (request) { | 20 | requests.every(function (request) { |
19 | const video = request.data | 21 | const video = request.data |
22 | |||
23 | if (!video) return false | ||
24 | |||
20 | return ( | 25 | return ( |
21 | isRequestTypeAddValid(request.type) && | 26 | isRequestTypeAddValid(request.type) && |
22 | isCommonVideoAttributesValid(video) && | 27 | isCommonVideoAttributesValid(video) && |
@@ -45,6 +50,8 @@ function isEachRemoteRequestVideosQaduValid (requests) { | |||
45 | requests.every(function (request) { | 50 | requests.every(function (request) { |
46 | const video = request.data | 51 | const video = request.data |
47 | 52 | ||
53 | if (!video) return false | ||
54 | |||
48 | return ( | 55 | return ( |
49 | videosValidators.isVideoRemoteIdValid(video.remoteId) && | 56 | videosValidators.isVideoRemoteIdValid(video.remoteId) && |
50 | (has(video, 'views') === false || videosValidators.isVideoViewsValid) && | 57 | (has(video, 'views') === false || videosValidators.isVideoViewsValid) && |
@@ -54,6 +61,21 @@ function isEachRemoteRequestVideosQaduValid (requests) { | |||
54 | }) | 61 | }) |
55 | } | 62 | } |
56 | 63 | ||
64 | function isEachRemoteRequestVideosEventsValid (requests) { | ||
65 | return miscValidators.isArray(requests) && | ||
66 | requests.every(function (request) { | ||
67 | const eventData = request.data | ||
68 | |||
69 | if (!eventData) return false | ||
70 | |||
71 | return ( | ||
72 | videosValidators.isVideoRemoteIdValid(eventData.remoteId) && | ||
73 | values(constants.REQUEST_VIDEO_EVENT_TYPES).indexOf(eventData.eventType) !== -1 && | ||
74 | videosValidators.isVideoEventCountValid(eventData.count) | ||
75 | ) | ||
76 | }) | ||
77 | } | ||
78 | |||
57 | // --------------------------------------------------------------------------- | 79 | // --------------------------------------------------------------------------- |
58 | 80 | ||
59 | module.exports = remoteVideosValidators | 81 | module.exports = remoteVideosValidators |
diff --git a/server/helpers/custom-validators/videos.js b/server/helpers/custom-validators/videos.js index 1d844118b..c5a1f3cb5 100644 --- a/server/helpers/custom-validators/videos.js +++ b/server/helpers/custom-validators/videos.js | |||
@@ -7,6 +7,7 @@ const usersValidators = require('./users') | |||
7 | const miscValidators = require('./misc') | 7 | const miscValidators = require('./misc') |
8 | const VIDEOS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEOS | 8 | const VIDEOS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEOS |
9 | const VIDEO_ABUSES_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEO_ABUSES | 9 | const VIDEO_ABUSES_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEO_ABUSES |
10 | const VIDEO_EVENTS_CONSTRAINTS_FIELDS = constants.CONSTRAINTS_FIELDS.VIDEO_EVENTS | ||
10 | 11 | ||
11 | const videosValidators = { | 12 | const videosValidators = { |
12 | isVideoAuthorValid, | 13 | isVideoAuthorValid, |
@@ -25,7 +26,8 @@ const videosValidators = { | |||
25 | isVideoFile, | 26 | isVideoFile, |
26 | isVideoViewsValid, | 27 | isVideoViewsValid, |
27 | isVideoLikesValid, | 28 | isVideoLikesValid, |
28 | isVideoDislikesValid | 29 | isVideoDislikesValid, |
30 | isVideoEventCountValid | ||
29 | } | 31 | } |
30 | 32 | ||
31 | function isVideoAuthorValid (value) { | 33 | function isVideoAuthorValid (value) { |
@@ -86,15 +88,19 @@ function isVideoAbuseReporterUsernameValid (value) { | |||
86 | } | 88 | } |
87 | 89 | ||
88 | function isVideoViewsValid (value) { | 90 | function isVideoViewsValid (value) { |
89 | return validator.isInt(value, { min: 0 }) | 91 | return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.VIEWS) |
90 | } | 92 | } |
91 | 93 | ||
92 | function isVideoLikesValid (value) { | 94 | function isVideoLikesValid (value) { |
93 | return validator.isInt(value, { min: 0 }) | 95 | return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.LIKES) |
94 | } | 96 | } |
95 | 97 | ||
96 | function isVideoDislikesValid (value) { | 98 | function isVideoDislikesValid (value) { |
97 | return validator.isInt(value, { min: 0 }) | 99 | return validator.isInt(value + '', VIDEOS_CONSTRAINTS_FIELDS.DISLIKES) |
100 | } | ||
101 | |||
102 | function isVideoEventCountValid (value) { | ||
103 | return validator.isInt(value + '', VIDEO_EVENTS_CONSTRAINTS_FIELDS.COUNT) | ||
98 | } | 104 | } |
99 | 105 | ||
100 | function isVideoFile (value, files) { | 106 | function isVideoFile (value, files) { |