]>
git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/v1/pods.js
b16fea4f6f4130c9ec90d475566feff7d5f6fbaa
3 const express
= require('express')
5 const logger
= require('../../../helpers/logger')
6 const friends
= require('../../../lib/friends')
7 const middleware
= require('../../../middlewares')
8 const cacheMiddleware
= middleware
.cache
9 const Pods
= require('../../../models/pods')
10 const reqValidator
= middleware
.reqValidators
.pods
11 const secureMiddleware
= middleware
.secure
12 const secureRequest
= middleware
.reqValidators
.remote
.secureRequest
13 const videos
= require('../../../lib/videos')
14 const Videos
= require('../../../models/videos')
16 const router
= express
.Router()
18 router
.get('/', cacheMiddleware
.cache(false), listPods
)
19 router
.post('/', reqValidator
.podsAdd
, cacheMiddleware
.cache(false), addPods
)
20 router
.get('/makefriends', reqValidator
.makeFriends
, cacheMiddleware
.cache(false), makeFriends
)
21 router
.get('/quitfriends', cacheMiddleware
.cache(false), quitFriends
)
22 // Post because this is a secured request
23 router
.post('/remove', secureRequest
, secureMiddleware
.decryptBody
, removePods
)
25 // ---------------------------------------------------------------------------
27 module
.exports
= router
29 // ---------------------------------------------------------------------------
31 function addPods (req
, res
, next
) {
32 const informations
= req
.body
.data
33 Pods
.add(informations
, function (err
) {
34 if (err
) return next(err
)
36 // Create the remote videos from the new pod
37 videos
.createRemoteVideos(informations
.videos
, function (err
) {
38 if (err
) logger
.error('Cannot create remote videos.', { error: err
})
41 friends
.getMyCertificate(function (err
, cert
) {
43 logger
.error('Cannot read cert file.')
47 Videos
.listOwned(function (err
, videosList
) {
49 logger
.error('Cannot get the list of owned videos.')
53 res
.json({ cert: cert
, videos: videosList
})
59 function listPods (req
, res
, next
) {
60 Pods
.list(function (err
, podsList
) {
61 if (err
) return next(err
)
67 function makeFriends (req
, res
, next
) {
68 friends
.makeFriends(function (err
) {
69 if (err
) return next(err
)
71 res
.type('json').status(204).end()
75 function removePods (req
, res
, next
) {
76 const url
= req
.body
.signature
.url
77 Pods
.remove(url
, function (err
) {
78 if (err
) return next(err
)
80 Videos
.listFromUrl(url
, function (err
, videosList
) {
82 logger
.error('Cannot list videos from url.', { error: err
})
86 videos
.removeRemoteVideos(videosList
, function (err
) {
88 logger
.error('Cannot remove remote videos.', { error: err
})
92 res
.type('json').status(204).end()
98 function quitFriends (req
, res
, next
) {
99 friends
.quitFriends(function (err
) {
100 if (err
) return next(err
)
102 res
.type('json').status(204).end()