aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--middlewares/reqValidators/videos.js4
-rw-r--r--package.json14
-rw-r--r--routes/api/v1/videos.js11
-rw-r--r--server.js4
-rw-r--r--src/videos.js2
5 files changed, 19 insertions, 16 deletions
diff --git a/middlewares/reqValidators/videos.js b/middlewares/reqValidators/videos.js
index 3763a657c..8c4e23b6b 100644
--- a/middlewares/reqValidators/videos.js
+++ b/middlewares/reqValidators/videos.js
@@ -24,8 +24,8 @@
24 } 24 }
25 25
26 videos.videosAdd = function (req, res, next) { 26 videos.videosAdd = function (req, res, next) {
27 req.checkFiles('input_video.originalname', 'Should have an input video').notEmpty() 27 req.checkFiles('input_video[0].originalname', 'Should have an input video').notEmpty()
28 req.checkFiles('input_video.mimetype', 'Should have a correct mime type').matches(/video\/(webm)|(mp4)|(ogg)/i) 28 req.checkFiles('input_video[0].mimetype', 'Should have a correct mime type').matches(/video\/(webm)|(mp4)|(ogg)/i)
29 req.checkBody('name', 'Should have a name').isLength(1, 50) 29 req.checkBody('name', 'Should have a name').isLength(1, 50)
30 req.checkBody('description', 'Should have a description').isLength(1, 250) 30 req.checkBody('description', 'Should have a description').isLength(1, 250)
31 31
diff --git a/package.json b/package.json
index 8f2ed9e74..26161cd76 100644
--- a/package.json
+++ b/package.json
@@ -36,8 +36,8 @@
36 "grunt": "^0.4.5", 36 "grunt": "^0.4.5",
37 "grunt-browserify": "^4.0.1", 37 "grunt-browserify": "^4.0.1",
38 "grunt-concurrent": "^2.1.0", 38 "grunt-concurrent": "^2.1.0",
39 "grunt-contrib-clean": "^0.6.0", 39 "grunt-contrib-clean": "^0.7.0",
40 "grunt-contrib-copy": "0.8.0", 40 "grunt-contrib-copy": "0.8.2",
41 "grunt-contrib-watch": "^0.6.1", 41 "grunt-contrib-watch": "^0.6.1",
42 "grunt-express-server": "^0.5.1", 42 "grunt-express-server": "^0.5.1",
43 "grunt-newer": "^1.1.1", 43 "grunt-newer": "^1.1.1",
@@ -50,17 +50,17 @@
50 "mkdirp": "^0.5.1", 50 "mkdirp": "^0.5.1",
51 "mongoose": "^4.0.5", 51 "mongoose": "^4.0.5",
52 "morgan": "^1.5.3", 52 "morgan": "^1.5.3",
53 "multer": "^0.1.8", 53 "multer": "^1.1.0",
54 "node-ipc": "^3.0.0", 54 "node-ipc": "^4.1.0",
55 "openssl-wrapper": "https://github.com/Chocobozzz/node-openssl-wrapper", 55 "openssl-wrapper": "https://github.com/Chocobozzz/node-openssl-wrapper",
56 "request": "^2.57.0", 56 "request": "^2.57.0",
57 "request-replay": "^0.3.0", 57 "request-replay": "^0.3.0",
58 "segfault-handler": "^0.2.4", 58 "segfault-handler": "^1.0.0",
59 "time-grunt": "^1.2.1", 59 "time-grunt": "^1.2.1",
60 "ursa": "^0.9.1", 60 "ursa": "^0.9.1",
61 "validator": "^4.3.0", 61 "validator": "^4.3.0",
62 "webtorrent": "*", 62 "webtorrent": "^0.63.2",
63 "winston": "^1.0.1", 63 "winston": "^2.1.1",
64 "ws": "^0.8.0" 64 "ws": "^0.8.0"
65 }, 65 },
66 "devDependencies": { 66 "devDependencies": {
diff --git a/routes/api/v1/videos.js b/routes/api/v1/videos.js
index 33c565437..ae70d1640 100644
--- a/routes/api/v1/videos.js
+++ b/routes/api/v1/videos.js
@@ -2,12 +2,17 @@
2 'use strict' 2 'use strict'
3 3
4 var express = require('express') 4 var express = require('express')
5 var config = require('config')
6 var multer = require('multer')
5 var router = express.Router() 7 var router = express.Router()
8
6 var middleware = require('../../../middlewares') 9 var middleware = require('../../../middlewares')
7 var miscMiddleware = middleware.misc 10 var miscMiddleware = middleware.misc
8 var reqValidator = middleware.reqValidators.videos 11 var reqValidator = middleware.reqValidators.videos
9 var videos = require('../../../src/videos') 12 var videos = require('../../../src/videos')
10 13
14 var uploads = config.get('storage.uploads')
15
11 function listVideos (req, res, next) { 16 function listVideos (req, res, next) {
12 videos.list(function (err, videos_list) { 17 videos.list(function (err, videos_list) {
13 if (err) return next(err) 18 if (err) return next(err)
@@ -25,7 +30,7 @@
25 } 30 }
26 31
27 function addVideos (req, res, next) { 32 function addVideos (req, res, next) {
28 videos.add({ video: req.files.input_video, data: req.body }, function (err) { 33 videos.add({ video: req.files.input_video[0], data: req.body }, function (err) {
29 if (err) return next(err) 34 if (err) return next(err)
30 35
31 // TODO : include Location of the new video 36 // TODO : include Location of the new video
@@ -53,8 +58,10 @@
53 }) 58 })
54 } 59 }
55 60
61 var reqFiles = multer({ dest: uploads }).fields([{ name: 'input_video', maxCount: 1 }])
62
56 router.get('/', miscMiddleware.cache(false), listVideos) 63 router.get('/', miscMiddleware.cache(false), listVideos)
57 router.post('/', reqValidator.videosAdd, miscMiddleware.cache(false), addVideos) 64 router.post('/', reqFiles, reqValidator.videosAdd, miscMiddleware.cache(false), addVideos)
58 router.get('/search/:name', reqValidator.videosSearch, miscMiddleware.cache(false), searchVideos) 65 router.get('/search/:name', reqValidator.videosSearch, miscMiddleware.cache(false), searchVideos)
59 router.get('/:id', reqValidator.videosGet, miscMiddleware.cache(false), getVideos) 66 router.get('/:id', reqValidator.videosGet, miscMiddleware.cache(false), getVideos)
60 router.delete('/:id', reqValidator.videosRemove, miscMiddleware.cache(false), removeVideo) 67 router.delete('/:id', reqValidator.videosRemove, miscMiddleware.cache(false), removeVideo)
diff --git a/server.js b/server.js
index 11402ea78..4b93a7adf 100644
--- a/server.js
+++ b/server.js
@@ -7,7 +7,6 @@
7 var expressValidator = require('express-validator') 7 var expressValidator = require('express-validator')
8 var http = require('http') 8 var http = require('http')
9 var morgan = require('morgan') 9 var morgan = require('morgan')
10 var multer = require('multer')
11 var path = require('path') 10 var path = require('path')
12 var TrackerServer = require('bittorrent-tracker').Server 11 var TrackerServer = require('bittorrent-tracker').Server
13 var WebSocketServer = require('ws').Server 12 var WebSocketServer = require('ws').Server
@@ -44,7 +43,6 @@
44 43
45 // Get configurations 44 // Get configurations
46 var port = config.get('listen.port') 45 var port = config.get('listen.port')
47 var uploads = config.get('storage.uploads')
48 46
49 // ----------- Command line ----------- 47 // ----------- Command line -----------
50 48
@@ -54,8 +52,6 @@
54 app.use(morgan('combined', { stream: logger.stream })) 52 app.use(morgan('combined', { stream: logger.stream }))
55 // For body requests 53 // For body requests
56 app.use(bodyParser.json()) 54 app.use(bodyParser.json())
57 // For POST file requests
58 app.use(multer({ dest: uploads }))
59 app.use(bodyParser.urlencoded({ extended: false })) 55 app.use(bodyParser.urlencoded({ extended: false }))
60 // Validate some params for the API 56 // Validate some params for the API
61 app.use(expressValidator({ 57 app.use(expressValidator({
diff --git a/src/videos.js b/src/videos.js
index e3a5b49f1..32f26abe7 100644
--- a/src/videos.js
+++ b/src/videos.js
@@ -56,7 +56,7 @@
56 56
57 var params = { 57 var params = {
58 name: video_data.name, 58 name: video_data.name,
59 namePath: video_file.name, 59 namePath: video_file.filename,
60 description: video_data.description, 60 description: video_data.description,
61 magnetUri: torrent.magnetURI, 61 magnetUri: torrent.magnetURI,
62 podUrl: http + '://' + host + ':' + port 62 podUrl: http + '://' + host + ':' + port