]>
Commit | Line | Data |
---|---|---|
3545e72c C |
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 | ||
868314e8 | 25 | const { token, expires } = VideoTokensManager.Instance.create({ videoUUID: video.uuid, user: res.locals.oauth.token.User }) |
3545e72c C |
26 | |
27 | return res.json({ | |
28 | files: { | |
29 | token, | |
30 | expires | |
31 | } | |
32 | } as VideoToken) | |
33 | } |