]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - controllers/api/v1/pods.js
New directory organization
[github/Chocobozzz/PeerTube.git] / controllers / api / v1 / pods.js
CommitLineData
8c308c2b
C
1;(function () {
2 'use strict'
3
4 var express = require('express')
5 var router = express.Router()
f5a60a51 6 var middleware = require('../../../middlewares')
b60035d8
C
7 var miscMiddleware = middleware.misc
8 var reqValidator = middleware.reqValidators.pods
45239549 9 var secureRequest = middleware.reqValidators.remote.secureRequest
cda02107 10 var pods = require('../../../models/pods')
8c308c2b
C
11
12 function listPods (req, res, next) {
13 pods.list(function (err, pods_list) {
e63dc45f 14 if (err) return next(err)
8c308c2b
C
15
16 res.json(pods_list)
17 })
18 }
19
20 function addPods (req, res, next) {
21 pods.add(req.body.data, function (err, json) {
e63dc45f 22 if (err) return next(err)
8c308c2b
C
23
24 res.json(json)
25 })
26 }
27
45239549
C
28 function removePods (req, res, next) {
29 pods.remove(req.body.signature.url, function (err) {
30 if (err) return next(err)
31
32 res.sendStatus(204)
33 })
34 }
35
8c308c2b 36 function makeFriends (req, res, next) {
45239549
C
37 pods.hasFriends(function (err, has_friends) {
38 if (err) return next(err)
39
40 if (has_friends === true) {
41 // We need to quit our friends before make new ones
42 res.sendStatus(409)
43 } else {
44 pods.makeFriends(function (err) {
45 if (err) return next(err)
46
47 res.sendStatus(204)
48 })
49 }
50 })
51 }
52
53 function quitFriends (req, res, next) {
54 pods.quitFriends(function (err) {
e63dc45f 55 if (err) return next(err)
8c308c2b
C
56
57 res.sendStatus(204)
58 })
59 }
60
b60035d8
C
61 router.get('/', miscMiddleware.cache(false), listPods)
62 router.get('/makefriends', miscMiddleware.cache(false), makeFriends)
45239549 63 router.get('/quitfriends', miscMiddleware.cache(false), quitFriends)
b60035d8 64 router.post('/', reqValidator.podsAdd, miscMiddleware.cache(false), addPods)
45239549
C
65 // Post because this is a secured request
66 router.post('/remove', secureRequest, miscMiddleware.decryptBody, removePods)
8c308c2b
C
67
68 module.exports = router
69})()