]>
Commit | Line | Data |
---|---|---|
9f10b292 | 1 | 'use strict' |
8c308c2b | 2 | |
f0f5567b | 3 | const express = require('express') |
35f1c54e | 4 | const map = require('lodash/map') |
0b697522 | 5 | |
f0f5567b C |
6 | const middleware = require('../../../middlewares') |
7 | const secureMiddleware = middleware.secure | |
8 | const cacheMiddleware = middleware.cache | |
9 | const reqValidator = middleware.reqValidators.remote | |
cbe2f7c3 C |
10 | const logger = require('../../../helpers/logger') |
11 | const Videos = require('../../../models/videos') | |
12 | const videos = require('../../../lib/videos') | |
8c308c2b | 13 | |
f0f5567b | 14 | const router = express.Router() |
c45f7f84 | 15 | |
9f10b292 C |
16 | router.post('/add', |
17 | reqValidator.secureRequest, | |
18 | secureMiddleware.decryptBody, | |
19 | reqValidator.remoteVideosAdd, | |
20 | cacheMiddleware.cache(false), | |
21 | addRemoteVideos | |
22 | ) | |
c45f7f84 | 23 | |
9f10b292 C |
24 | router.post('/remove', |
25 | reqValidator.secureRequest, | |
26 | secureMiddleware.decryptBody, | |
27 | reqValidator.remoteVideosRemove, | |
28 | cacheMiddleware.cache(false), | |
29 | removeRemoteVideo | |
30 | ) | |
c45f7f84 | 31 | |
9f10b292 | 32 | // --------------------------------------------------------------------------- |
c45f7f84 | 33 | |
9f10b292 | 34 | module.exports = router |
c45f7f84 | 35 | |
9f10b292 | 36 | // --------------------------------------------------------------------------- |
c45f7f84 | 37 | |
9f10b292 | 38 | function addRemoteVideos (req, res, next) { |
cbe2f7c3 C |
39 | const videos_to_create = req.body.data |
40 | videos.createRemoteVideos(videos_to_create, function (err, remote_videos) { | |
41 | if (err) { | |
42 | logger.error('Cannot create remote videos.', { error: err }) | |
43 | return next(err) | |
44 | } | |
8c308c2b | 45 | |
cbe2f7c3 | 46 | res.type('json').status(201).end() |
9f10b292 C |
47 | }) |
48 | } | |
8c308c2b | 49 | |
9f10b292 | 50 | function removeRemoteVideo (req, res, next) { |
cbe2f7c3 | 51 | const fromUrl = req.body.signature.url |
a4c15751 | 52 | const magnetUris = map(req.body.data, 'magnetUri') |
c173e565 | 53 | |
cbe2f7c3 C |
54 | Videos.listFromUrlAndMagnets(fromUrl, magnetUris, function (err, videos_list) { |
55 | if (err) { | |
56 | logger.error('Cannot list videos from url and magnets.', { error: err }) | |
57 | return next(err) | |
58 | } | |
8c308c2b | 59 | |
cbe2f7c3 C |
60 | videos.removeRemoteVideos(videos_list, function (err) { |
61 | if (err) { | |
62 | logger.error('Cannot remove remote videos.', { error: err }) | |
63 | return next(err) | |
64 | } | |
65 | ||
66 | res.type('json').status(204).end() | |
67 | }) | |
9f10b292 C |
68 | }) |
69 | } |