]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/controllers/api/videos/token.ts
Support studio transcoding in peertube runner
[github/Chocobozzz/PeerTube.git] / server / controllers / api / videos / token.ts
1 import express from 'express'
2 import { VideoTokensManager } from '@server/lib/video-tokens-manager'
3 import { VideoToken } from '@shared/models'
4 import { asyncMiddleware, authenticate, videosCustomGetValidator } from '../../../middlewares'
5
6 const tokenRouter = express.Router()
7
8 tokenRouter.post('/:id/token',
9 authenticate,
10 asyncMiddleware(videosCustomGetValidator('only-video')),
11 generateToken
12 )
13
14 // ---------------------------------------------------------------------------
15
16 export {
17 tokenRouter
18 }
19
20 // ---------------------------------------------------------------------------
21
22 function generateToken (req: express.Request, res: express.Response) {
23 const video = res.locals.onlyVideo
24
25 const { token, expires } = VideoTokensManager.Instance.create({ videoUUID: video.uuid, user: res.locals.oauth.token.User })
26
27 return res.json({
28 files: {
29 token,
30 expires
31 }
32 } as VideoToken)
33 }