]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/controllers/api/v1/remoteVideos.js
Update disk size for 1000000 videos in architecture
[github/Chocobozzz/PeerTube.git] / server / controllers / api / v1 / remoteVideos.js
CommitLineData
9f10b292 1'use strict'
8c308c2b 2
f0f5567b 3const express = require('express')
35f1c54e 4const map = require('lodash/map')
0b697522 5
b3b92647
C
6const middlewares = require('../../../middlewares')
7const secureMiddleware = middlewares.secure
8const reqValidator = middlewares.reqValidators.remote
cbe2f7c3
C
9const logger = require('../../../helpers/logger')
10const Videos = require('../../../models/videos')
11const videos = require('../../../lib/videos')
8c308c2b 12
f0f5567b 13const router = express.Router()
c45f7f84 14
9f10b292
C
15router.post('/add',
16 reqValidator.secureRequest,
17 secureMiddleware.decryptBody,
18 reqValidator.remoteVideosAdd,
9f10b292
C
19 addRemoteVideos
20)
c45f7f84 21
9f10b292
C
22router.post('/remove',
23 reqValidator.secureRequest,
24 secureMiddleware.decryptBody,
25 reqValidator.remoteVideosRemove,
9f10b292
C
26 removeRemoteVideo
27)
c45f7f84 28
9f10b292 29// ---------------------------------------------------------------------------
c45f7f84 30
9f10b292 31module.exports = router
c45f7f84 32
9f10b292 33// ---------------------------------------------------------------------------
c45f7f84 34
9f10b292 35function 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 47function 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}