]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Server: update express-validator
authorChocobozzz <florian.bigard@gmail.com>
Fri, 10 Feb 2017 10:27:14 +0000 (11:27 +0100)
committerChocobozzz <florian.bigard@gmail.com>
Fri, 10 Feb 2017 10:27:14 +0000 (11:27 +0100)
package.json
server/helpers/custom-validators/videos.js
server/middlewares/validators/videos.js

index 0d650ddeb677bcd88a2bfa4365f44c1265102a61..4197f919a42cba70c9aab26a7c25cb86f7783bdd 100644 (file)
@@ -51,7 +51,7 @@
     "dezalgo": "^1.0.3",
     "express": "^4.12.4",
     "express-oauth-server": "https://github.com/Chocobozzz/express-oauth-server",
-    "express-validator": "^2.11.0",
+    "express-validator": "^3.1.0",
     "fluent-ffmpeg": "^2.1.0",
     "js-yaml": "^3.5.4",
     "lodash": "^4.11.1",
index 7f727854dfc8e99c2eea8cea0ffa23d0c52cf3cb..e2d2c8e6d536d56e65b3dc4f5e43ceba7ad35ea1 100644 (file)
@@ -21,7 +21,8 @@ const videosValidators = {
   isVideoExtnameValid,
   isVideoRemoteIdValid,
   isVideoAbuseReasonValid,
-  isVideoAbuseReporterUsernameValid
+  isVideoAbuseReporterUsernameValid,
+  isVideoFile
 }
 
 function isVideoAuthorValid (value) {
@@ -81,6 +82,21 @@ function isVideoAbuseReporterUsernameValid (value) {
   return usersValidators.isUserUsernameValid(value)
 }
 
+function isVideoFile (value, files) {
+  // Should have files
+  if (!files) return false
+
+  // Should have videofile file
+  const videofile = files.videofile
+  if (!videofile || videofile.length === 0) return false
+
+  // The file should exist
+  const file = videofile[0]
+  if (!file || !file.originalname) return false
+
+  return new RegExp('^video/(webm|mp4|ogg)$', 'i').test(file.mimetype)
+}
+
 // ---------------------------------------------------------------------------
 
 module.exports = videosValidators
index 4fe6dcd8b3e81cfbae3c5f7f47ca176d2f6419ec..5c3f3ecf3ebdefc61b6d1b2bf26b6507f96369fa 100644 (file)
@@ -17,9 +17,7 @@ const validatorsVideos = {
 }
 
 function videosAdd (req, res, next) {
-  req.checkFiles('videofile[0].originalname', 'Should have an input video').notEmpty()
-  // TODO: move to constants and function
-  req.checkFiles('videofile[0].mimetype', 'Should have a correct mime type').matches(/video\/(webm)|(mp4)|(ogg)/i)
+  req.checkBody('videofile', 'Should have a valid file').isVideoFile(req.files)
   req.checkBody('name', 'Should have a valid name').isVideoNameValid()
   req.checkBody('description', 'Should have a valid description').isVideoDescriptionValid()
   req.checkBody('tags', 'Should have correct tags').isVideoTagsValid()