diff --git a/backend/src/controllers/recording.controller.ts b/backend/src/controllers/recording.controller.ts index df5f5b7..8209efd 100644 --- a/backend/src/controllers/recording.controller.ts +++ b/backend/src/controllers/recording.controller.ts @@ -126,8 +126,14 @@ export const deleteRecording = async (req: Request, res: Response) => { } }; -// Internal Recording methods -export const streamRecording = async (req: Request, res: Response) => { +/** + * Streams a recording video file to the client with support for range requests. + * + * This controller endpoint retrieves a recording by its ID and streams it as a video/mp4 file. + * It supports HTTP range requests, allowing for features like video seeking and partial downloads. + * + */ +export const getRecordingContent = async (req: Request, res: Response) => { const logger = container.get(LoggerService); const recordingId = req.params.recordingId; @@ -172,3 +178,6 @@ export const streamRecording = async (req: Request, res: Response) => { return res.status(500).json({ name: 'Recording Error', message: 'Unexpected error streaming recording' }); } }; + + +// Internal Recording methods diff --git a/backend/src/routes/recording.routes.ts b/backend/src/routes/recording.routes.ts index fb6d653..a944487 100644 --- a/backend/src/routes/recording.routes.ts +++ b/backend/src/routes/recording.routes.ts @@ -61,14 +61,21 @@ recordingRouter.delete( recordingCtrl.bulkDeleteRecordings ); +recordingRouter.get( + '/:recordingId/content', + withAuth(apiKeyValidator, tokenAndRoleValidator(UserRole.ADMIN)), + withValidRecordingId, + recordingCtrl.getRecordingContent +); + // Internal Recording Routes export const internalRecordingRouter = Router(); internalRecordingRouter.use(bodyParser.urlencoded({ extended: true })); internalRecordingRouter.use(bodyParser.json()); internalRecordingRouter.get( - '/:recordingId/stream', + '/:recordingId/content', withAuth(tokenAndRoleValidator(UserRole.ADMIN)), withValidRecordingId, - recordingCtrl.streamRecording + recordingCtrl.getRecordingContent );