]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/controllers/api/pods.ts
Fix lint
[github/Chocobozzz/PeerTube.git] / server / controllers / api / pods.ts
CommitLineData
4d4e5cd4 1import * as express from 'express'
65fcc311 2
e02643f3 3import { database as db } from '../../initializers/database'
8a02bd04 4import { logger, getFormattedObjects } from '../../helpers'
65fcc311 5import {
65fcc311 6 makeFriends,
d5f5a670
GS
7 quitFriends,
8 removeFriend
65fcc311
C
9} from '../../lib'
10import {
65fcc311
C
11 authenticate,
12 ensureIsAdmin,
13 makeFriendsValidator,
d5f5a670 14 setBodyHostsPort,
8a02bd04
C
15 podRemoveValidator,
16 paginationValidator,
17 setPagination,
18 setPodsSort,
eb080476
C
19 podsSortValidator,
20 asyncMiddleware
65fcc311 21} from '../../middlewares'
8a02bd04 22import { PodInstance } from '../../models'
65fcc311
C
23
24const podsRouter = express.Router()
25
8a02bd04
C
26podsRouter.get('/',
27 paginationValidator,
28 podsSortValidator,
29 setPodsSort,
30 setPagination,
eb080476 31 asyncMiddleware(listPods)
65fcc311 32)
aa2e7f15 33podsRouter.post('/make-friends',
65fcc311
C
34 authenticate,
35 ensureIsAdmin,
36 makeFriendsValidator,
37 setBodyHostsPort,
eb080476 38 asyncMiddleware(makeFriendsController)
65fcc311 39)
aa2e7f15 40podsRouter.get('/quit-friends',
65fcc311
C
41 authenticate,
42 ensureIsAdmin,
eb080476 43 asyncMiddleware(quitFriendsController)
65fcc311 44)
d5f5a670
GS
45podsRouter.delete('/:id',
46 authenticate,
47 ensureIsAdmin,
48 podRemoveValidator,
eb080476 49 asyncMiddleware(removeFriendController)
d5f5a670 50)
65fcc311
C
51
52// ---------------------------------------------------------------------------
53
54export {
55 podsRouter
56}
57
58// ---------------------------------------------------------------------------
59
eb080476
C
60async function listPods (req: express.Request, res: express.Response, next: express.NextFunction) {
61 const resultList = await db.Pod.listForApi(req.query.start, req.query.count, req.query.sort)
62
63 return res.json(getFormattedObjects(resultList.data, resultList.total))
65fcc311
C
64}
65
eb080476 66async function makeFriendsController (req: express.Request, res: express.Response, next: express.NextFunction) {
69818c93 67 const hosts = req.body.hosts as string[]
65fcc311 68
eb080476 69 // Don't wait the process that could be long
6fcd19ba
C
70 makeFriends(hosts)
71 .then(() => logger.info('Made friends!'))
ad0997ad 72 .catch(err => logger.error('Could not make friends.', err))
65fcc311 73
eb080476 74 return res.type('json').status(204).end()
65fcc311
C
75}
76
eb080476
C
77async function quitFriendsController (req: express.Request, res: express.Response, next: express.NextFunction) {
78 await quitFriends()
79
80 return res.type('json').status(204).end()
65fcc311 81}
d5f5a670 82
eb080476 83async function removeFriendController (req: express.Request, res: express.Response, next: express.NextFunction) {
d5f5a670
GS
84 const pod = res.locals.pod as PodInstance
85
eb080476
C
86 await removeFriend(pod)
87
88 return res.type('json').status(204).end()
d5f5a670 89}