]>
Commit | Line | Data |
---|---|---|
8c308c2b C |
1 | ;(function () { |
2 | 'use strict' | |
3 | ||
4 | var express = require('express') | |
207fbab4 C |
5 | var config = require('config') |
6 | var multer = require('multer') | |
8c308c2b | 7 | var router = express.Router() |
207fbab4 | 8 | |
f5a60a51 | 9 | var middleware = require('../../../middlewares') |
b60035d8 C |
10 | var miscMiddleware = middleware.misc |
11 | var reqValidator = middleware.reqValidators.videos | |
f5a60a51 | 12 | var videos = require('../../../src/videos') |
8c308c2b | 13 | |
207fbab4 C |
14 | var uploads = config.get('storage.uploads') |
15 | ||
8c308c2b C |
16 | function listVideos (req, res, next) { |
17 | videos.list(function (err, videos_list) { | |
e63dc45f | 18 | if (err) return next(err) |
8c308c2b C |
19 | |
20 | res.json(videos_list) | |
21 | }) | |
22 | } | |
23 | ||
24 | function searchVideos (req, res, next) { | |
25 | videos.search(req.params.name, function (err, videos_list) { | |
e63dc45f | 26 | if (err) return next(err) |
8c308c2b C |
27 | |
28 | res.json(videos_list) | |
29 | }) | |
30 | } | |
31 | ||
32 | function addVideos (req, res, next) { | |
207fbab4 | 33 | videos.add({ video: req.files.input_video[0], data: req.body }, function (err) { |
e63dc45f | 34 | if (err) return next(err) |
8c308c2b C |
35 | |
36 | // TODO : include Location of the new video | |
37 | res.sendStatus(201) | |
38 | }) | |
39 | } | |
40 | ||
41 | function getVideos (req, res, next) { | |
42 | videos.get(req.params.id, function (err, video) { | |
e63dc45f | 43 | if (err) return next(err) |
8c308c2b C |
44 | |
45 | if (video === null) { | |
46 | return res.sendStatus(404) | |
47 | } | |
48 | ||
49 | res.json(video) | |
50 | }) | |
51 | } | |
52 | ||
53 | function removeVideo (req, res, next) { | |
54 | videos.remove(req.params.id, function (err) { | |
e63dc45f | 55 | if (err) return next(err) |
8c308c2b C |
56 | |
57 | res.sendStatus(204) | |
58 | }) | |
59 | } | |
60 | ||
207fbab4 C |
61 | var reqFiles = multer({ dest: uploads }).fields([{ name: 'input_video', maxCount: 1 }]) |
62 | ||
b60035d8 | 63 | router.get('/', miscMiddleware.cache(false), listVideos) |
207fbab4 | 64 | router.post('/', reqFiles, reqValidator.videosAdd, miscMiddleware.cache(false), addVideos) |
b60035d8 C |
65 | router.get('/search/:name', reqValidator.videosSearch, miscMiddleware.cache(false), searchVideos) |
66 | router.get('/:id', reqValidator.videosGet, miscMiddleware.cache(false), getVideos) | |
67 | router.delete('/:id', reqValidator.videosRemove, miscMiddleware.cache(false), removeVideo) | |
8c308c2b C |
68 | |
69 | module.exports = router | |
70 | })() |