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