From 26e3e98ff0e222a9fb9226938ac6902af77921bd Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 3 May 2022 11:38:07 +0200 Subject: Support live session in server --- server/middlewares/validators/videos/video-live.ts | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'server/middlewares') diff --git a/server/middlewares/validators/videos/video-live.ts b/server/middlewares/validators/videos/video-live.ts index ff492da0f..59638d5e0 100644 --- a/server/middlewares/validators/videos/video-live.ts +++ b/server/middlewares/validators/videos/video-live.ts @@ -28,6 +28,7 @@ import { isValidVideoIdParam } from '../shared' import { getCommonVideoEditAttributes } from './videos' +import { VideoLiveSessionModel } from '@server/models/video/video-live-session' const videoLiveGetValidator = [ isValidVideoIdParam('videoId'), @@ -196,11 +197,48 @@ const videoLiveUpdateValidator = [ } ] +const videoLiveListSessionsValidator = [ + (req: express.Request, res: express.Response, next: express.NextFunction) => { + logger.debug('Checking videoLiveListSessionsValidator parameters', { parameters: req.params }) + + // Check the user can manage the live + const user = res.locals.oauth.token.User + if (!checkUserCanManageVideo(user, res.locals.videoAll, UserRight.GET_ANY_LIVE, res)) return + + return next() + } +] + +const videoLiveFindReplaySessionValidator = [ + isValidVideoIdParam('videoId'), + + async (req: express.Request, res: express.Response, next: express.NextFunction) => { + logger.debug('Checking videoLiveFindReplaySessionValidator parameters', { parameters: req.params }) + + if (areValidationErrors(req, res)) return + if (!await doesVideoExist(req.params.videoId, res, 'id')) return + + const session = await VideoLiveSessionModel.findSessionOfReplay(res.locals.videoId.id) + if (!session) { + return res.fail({ + status: HttpStatusCode.NOT_FOUND_404, + message: 'No live replay found' + }) + } + + res.locals.videoLiveSession = session + + return next() + } +] + // --------------------------------------------------------------------------- export { videoLiveAddValidator, videoLiveUpdateValidator, + videoLiveListSessionsValidator, + videoLiveFindReplaySessionValidator, videoLiveGetValidator } -- cgit v1.2.3