isValidVideoIdParam
} from '../shared'
import { getCommonVideoEditAttributes } from './videos'
+import { VideoLiveSessionModel } from '@server/models/video/video-live-session'
const videoLiveGetValidator = [
isValidVideoIdParam('videoId'),
async (req: express.Request, res: express.Response, next: express.NextFunction) => {
- logger.debug('Checking videoLiveGetValidator parameters', { parameters: req.params, user: res.locals.oauth.token.User.username })
+ logger.debug('Checking videoLiveGetValidator parameters', { parameters: req.params })
if (areValidationErrors(req, res)) return
if (!await doesVideoExist(req.params.videoId, res, 'all')) return
- // Check if the user who did the request is able to get the live info
- const user = res.locals.oauth.token.User
- if (!checkUserCanManageVideo(user, res.locals.videoAll, UserRight.GET_ANY_LIVE, res, false)) return
-
const videoLive = await VideoLiveModel.loadByVideoId(res.locals.videoAll.id)
if (!videoLive) {
return res.fail({
const body: LiveVideoUpdate = req.body
- if (body.permanentLive && body.saveReplay) {
- return res.fail({ message: 'Cannot set this live as permanent while saving its replay' })
- }
-
if (hasValidSaveReplay(body) !== true) {
return res.fail({
status: HttpStatusCode.FORBIDDEN_403,
}
]
+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
}