Infile code reorganization
[oweals/peertube.git] / controllers / api / v1 / remoteVideos.js
1 ;(function () {
2   'use strict'
3
4   var express = require('express')
5   var pluck = require('lodash-node/compat/collection/pluck')
6
7   var middleware = require('../../../middlewares')
8   var miscMiddleware = middleware.misc
9   var reqValidator = middleware.reqValidators.remote
10   var videos = require('../../../models/videos')
11
12   var router = express.Router()
13
14   router.post('/add',
15     reqValidator.secureRequest,
16     miscMiddleware.decryptBody,
17     reqValidator.remoteVideosAdd,
18     miscMiddleware.cache(false),
19     addRemoteVideos
20   )
21
22   router.post('/remove',
23     reqValidator.secureRequest,
24     miscMiddleware.decryptBody,
25     reqValidator.remoteVideosRemove,
26     miscMiddleware.cache(false),
27     removeRemoteVideo
28   )
29
30   // ---------------------------------------------------------------------------
31
32   module.exports = router
33
34   // ---------------------------------------------------------------------------
35
36   function addRemoteVideos (req, res, next) {
37     videos.addRemotes(req.body.data, function (err, videos) {
38       if (err) return next(err)
39
40       res.json(videos)
41     })
42   }
43
44   function removeRemoteVideo (req, res, next) {
45     videos.removeRemotes(req.body.signature.url, pluck(req.body.data, 'magnetUri'), function (err) {
46       if (err) return next(err)
47
48       res.sendStatus(204)
49     })
50   }
51 })()