]>
Commit | Line | Data |
---|---|---|
9f10b292 | 1 | 'use strict' |
0b697522 | 2 | |
f0f5567b | 3 | const validator = require('validator') |
0b697522 | 4 | |
67100f1f C |
5 | const constants = require('../initializers/constants') |
6 | ||
f0f5567b | 7 | const customValidators = { |
9f10b292 C |
8 | eachIsRemoteVideosAddValid: eachIsRemoteVideosAddValid, |
9 | eachIsRemoteVideosRemoveValid: eachIsRemoteVideosRemoveValid, | |
10 | isArray: isArray | |
11 | } | |
0b697522 | 12 | |
9f10b292 C |
13 | function eachIsRemoteVideosAddValid (values) { |
14 | return values.every(function (val) { | |
15 | return validator.isLength(val.name, 1, 50) && | |
16 | validator.isLength(val.description, 1, 50) && | |
17 | validator.isLength(val.magnetUri, 10) && | |
3a8a8b51 | 18 | validator.isURL(val.podUrl) && |
bb10240e | 19 | !isNaN(val.duration) && |
67100f1f C |
20 | val.duration >= 0 && |
21 | val.duration < constants.MAXIMUM_VIDEO_DURATION && | |
a996fc4a | 22 | validator.isLength(val.author, 1, constants.MAXIMUM_AUTHOR_LENGTH) && |
479f2291 C |
23 | validator.isBase64(val.thumbnailBase64) && |
24 | validator.isByteLength(val.thumbnailBase64, { min: 0, max: 20000 }) && | |
bb10240e | 25 | validator.isDate(val.createdDate) |
9f10b292 C |
26 | }) |
27 | } | |
0b697522 | 28 | |
9f10b292 C |
29 | function eachIsRemoteVideosRemoveValid (values) { |
30 | return values.every(function (val) { | |
31 | return validator.isLength(val.magnetUri, 10) | |
32 | }) | |
33 | } | |
0b697522 | 34 | |
9f10b292 C |
35 | function isArray (value) { |
36 | return Array.isArray(value) | |
37 | } | |
0b697522 | 38 | |
9f10b292 | 39 | // --------------------------------------------------------------------------- |
c45f7f84 | 40 | |
9f10b292 | 41 | module.exports = customValidators |