From bdf63e2e78f9073ccdeab10add96b42c44a1042f Mon Sep 17 00:00:00 2001 From: csantosm <4a.santos@gmail.com> Date: Tue, 28 Jun 2022 12:34:23 +0200 Subject: [PATCH] openvidu-call: Fixed recordings feature --- .../src/controllers/RecordingController.ts | 6 +----- .../src/controllers/SessionController.ts | 4 ++-- .../openvidu-call-back/src/services/OpenViduService.ts | 2 +- .../admin-dashboard/admin-dashboard.component.html | 1 - .../admin-dashboard/admin-dashboard.component.ts | 9 --------- .../src/app/components/call/call.component.html | 1 - .../src/app/components/call/call.component.ts | 8 -------- .../openvidu-call-front/src/app/services/rest.service.ts | 6 +----- 8 files changed, 5 insertions(+), 32 deletions(-) diff --git a/openvidu-call/openvidu-call-back/src/controllers/RecordingController.ts b/openvidu-call/openvidu-call-back/src/controllers/RecordingController.ts index b2294673..f4637cb4 100644 --- a/openvidu-call/openvidu-call-back/src/controllers/RecordingController.ts +++ b/openvidu-call/openvidu-call-back/src/controllers/RecordingController.ts @@ -138,11 +138,8 @@ app.delete('/delete/:recordingId', async (req: Request, res: Response) => { }); export const proxyGETRecording = createProxyMiddleware({ - target: `${OPENVIDU_URL}/openvidu/recordings/`, + target: `${OPENVIDU_URL}/openvidu/`, secure: CALL_OPENVIDU_CERTTYPE !== 'selfsigned', - pathRewrite: (path, req) => { - return `${req.params.recordingId}/${req.params.recordingId}.mp4`; - }, onProxyReq: (proxyReq, req: Request, res: Response) => { const isAdminDashboard = openviduService.adminTokens.includes(req['session'].token); const sessionId = openviduService.getSessionIdFromCookie(req.cookies); @@ -153,7 +150,6 @@ export const proxyGETRecording = createProxyMiddleware({ } else { proxyReq.setHeader('Connection', 'keep-alive'); proxyReq.setHeader('Authorization', openviduService.getBasicAuth()); - proxyReq.setHeader('Range', 'bytes=0-'); } } else { return res.status(403).send(JSON.stringify({ message: 'Permissions denied to drive recording' })); diff --git a/openvidu-call/openvidu-call-back/src/controllers/SessionController.ts b/openvidu-call/openvidu-call-back/src/controllers/SessionController.ts index 65ccaea2..5c5642d9 100644 --- a/openvidu-call/openvidu-call-back/src/controllers/SessionController.ts +++ b/openvidu-call/openvidu-call-back/src/controllers/SessionController.ts @@ -24,7 +24,7 @@ app.post('/', async (req: Request, res: Response) => { const hasValidToken = openviduService.isValidToken(sessionId, req.cookies); const isSessionCreator = hasValidToken || sessionCreated.activeConnections.length === 0; const role: OpenViduRole = isSessionCreator && IS_RECORDING_ENABLED ? OpenViduRole.MODERATOR : OpenViduRole.PUBLISHER; - const response = {cameraToken : '', screenToken: '', recordingEnabled: IS_RECORDING_ENABLED}; + const response = {cameraToken : '', screenToken: '', recordingEnabled: IS_RECORDING_ENABLED, recordings: []}; const cameraConnection = await openviduService.createConnection(sessionCreated, nickname, role); const screenConnection = await openviduService.createConnection(sessionCreated, nickname, role); response.cameraToken = cameraConnection.token; @@ -51,7 +51,7 @@ app.post('/', async (req: Request, res: Response) => { if(IS_RECORDING_ENABLED){ date = date || openviduService.getDateFromCookie(req.cookies); - response['recordings'] = await openviduService.listRecordingsBySessionIdAndDate(sessionId, date); + response.recordings = await openviduService.listRecordingsBySessionIdAndDate(sessionId, date); } res.status(200).send(JSON.stringify(response)); diff --git a/openvidu-call/openvidu-call-back/src/services/OpenViduService.ts b/openvidu-call/openvidu-call-back/src/services/OpenViduService.ts index 6488e152..7d1b302d 100644 --- a/openvidu-call/openvidu-call-back/src/services/OpenViduService.ts +++ b/openvidu-call/openvidu-call-back/src/services/OpenViduService.ts @@ -61,9 +61,9 @@ export class OpenViduService { return sessionId === cookieSessionId && cookieToken === storedToken && cookieDate === storedDate; } - return false; } catch (error) { + console.log(error) return false; } } diff --git a/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.html b/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.html index d0bc672f..194372d0 100644 --- a/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.html +++ b/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.html @@ -5,6 +5,5 @@ [recordingsList]="recordings" (onLogoutClicked)="onLogoutClicked()" (onRefreshRecordingsClicked)="onRefreshRecordingsClicked()" - (onDownloadRecordingClicked)="onDownloadRecordingClicked($event)" (onDeleteRecordingClicked)="onDeleteRecordingClicked($event)" > diff --git a/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.ts b/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.ts index 14d2d081..d522bba8 100644 --- a/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.ts +++ b/openvidu-call/openvidu-call-front/src/app/components/admin-dashboard/admin-dashboard.component.ts @@ -42,15 +42,6 @@ export class AdminDashboardComponent implements OnInit { } } - async onDownloadRecordingClicked(recordingId: string) { - try { - const file = await this.restService.downloadRecording(recordingId); - this.recordingService.downloadRecording(recordingId, file); - } catch (error) { - console.error(error); - } - } - async onDeleteRecordingClicked(recordingId: string) { try { this.recordings = await this.restService.deleteRecording(recordingId); diff --git a/openvidu-call/openvidu-call-front/src/app/components/call/call.component.html b/openvidu-call/openvidu-call-front/src/app/components/call/call.component.html index e0efddbb..092caf62 100644 --- a/openvidu-call/openvidu-call-front/src/app/components/call/call.component.html +++ b/openvidu-call/openvidu-call-front/src/app/components/call/call.component.html @@ -7,7 +7,6 @@ (onActivitiesPanelStartRecordingClicked)="onStartRecordingClicked()" (onToolbarStopRecordingClicked)="onStopRecordingClicked()" (onActivitiesPanelStopRecordingClicked)="onStopRecordingClicked()" - (onActivitiesPanelDownloadRecordingClicked)="onDownloadRecordingClicked($event)" (onActivitiesPanelDeleteRecordingClicked)="onDeleteRecordingClicked($event)" [activitiesPanelRecordingActivity]="recordingEnabled" [toolbarRecordingButton]="recordingEnabled" diff --git a/openvidu-call/openvidu-call-front/src/app/components/call/call.component.ts b/openvidu-call/openvidu-call-front/src/app/components/call/call.component.ts index 6274671c..2d386480 100644 --- a/openvidu-call/openvidu-call-front/src/app/components/call/call.component.ts +++ b/openvidu-call/openvidu-call-front/src/app/components/call/call.component.ts @@ -77,12 +77,4 @@ export class CallComponent implements OnInit { this.recordingError = error; } } - async onDownloadRecordingClicked(recordingId: string) { - try { - const file = await this.restService.downloadRecording(recordingId); - this.recordingService.downloadRecording(recordingId, file); - } catch (error) { - this.recordingError = error; - } - } } diff --git a/openvidu-call/openvidu-call-front/src/app/services/rest.service.ts b/openvidu-call/openvidu-call-front/src/app/services/rest.service.ts index b865564e..d69ac227 100644 --- a/openvidu-call/openvidu-call-front/src/app/services/rest.service.ts +++ b/openvidu-call/openvidu-call-front/src/app/services/rest.service.ts @@ -15,7 +15,7 @@ export class RestService { async getTokens( sessionId: string, nickname?: string - ): Promise<{ cameraToken: string; screenToken: string, recordingEnabled: boolean, recordings?: RecordingInfo[] }> { + ): Promise<{ cameraToken: string, screenToken: string, recordingEnabled: boolean, recordings?: RecordingInfo[] }> { return this.postRequest('sessions', { sessionId, nickname }); } login(password: string): Promise { @@ -37,10 +37,6 @@ export class RestService { return this.postRequest('recordings/stop', { sessionId }); } - downloadRecording(recordingId: string): Promise { - return this.getRequest(`recordings/${recordingId}`, 'blob'); - } - deleteRecording(recordingId: string): Promise { return this.deleteRequest(`recordings/delete/${recordingId}`); }