]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - server/controllers/api/jobs.ts
Accept actors with url objects instead of string
[github/Chocobozzz/PeerTube.git] / server / controllers / api / jobs.ts
CommitLineData
5cd80545 1import * as express from 'express'
3fd3ab2d 2import { UserRight } from '../../../shared/models/users'
da854ddd 3import { getFormattedObjects } from '../../helpers/utils'
f05a1c30
C
4import {
5 asyncMiddleware, authenticate, ensureUserHasRight, jobsSortValidator, setDefaultPagination,
6 setDefaultSort
7} from '../../middlewares'
3fd3ab2d
C
8import { paginationValidator } from '../../middlewares/validators'
9import { JobModel } from '../../models/job/job'
5cd80545
C
10
11const jobsRouter = express.Router()
12
13jobsRouter.get('/',
14 authenticate,
15 ensureUserHasRight(UserRight.MANAGE_JOBS),
16 paginationValidator,
17 jobsSortValidator,
1174a847 18 setDefaultSort,
f05a1c30 19 setDefaultPagination,
5cd80545
C
20 asyncMiddleware(listJobs)
21)
22
23// ---------------------------------------------------------------------------
24
25export {
26 jobsRouter
27}
28
29// ---------------------------------------------------------------------------
30
31async function listJobs (req: express.Request, res: express.Response, next: express.NextFunction) {
3fd3ab2d 32 const resultList = await JobModel.listForApi(req.query.start, req.query.count, req.query.sort)
5cd80545
C
33
34 return res.json(getFormattedObjects(resultList.data, resultList.total))
35}