From 9436315f7d3d745d4b2d91c25474c0a12d7abf85 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Fri, 9 Aug 2019 09:34:30 +0200 Subject: [PATCH] openvidu-server: recording url only defined on ready or failed status --- .../src/main/java/io/openvidu/java/client/Recording.java | 2 +- openvidu-node-client/src/Recording.ts | 2 +- .../server/recording/service/RecordingManager.java | 9 ++++++--- .../io/openvidu/test/e2e/OpenViduTestAppE2eTest.java | 6 +++--- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/openvidu-java-client/src/main/java/io/openvidu/java/client/Recording.java b/openvidu-java-client/src/main/java/io/openvidu/java/client/Recording.java index 3ddfa4e3..a09f1600 100644 --- a/openvidu-java-client/src/main/java/io/openvidu/java/client/Recording.java +++ b/openvidu-java-client/src/main/java/io/openvidu/java/client/Recording.java @@ -190,7 +190,7 @@ public class Recording { /** * URL of the recording. You can access the file from there. It is - * null until recording is stopped. If + * null until recording reaches "ready" or "failed" status. If * OpenVidu Server configuration property * openvidu.recording.public-access is false, this path will be diff --git a/openvidu-node-client/src/Recording.ts b/openvidu-node-client/src/Recording.ts index fd2e9894..95c86089 100644 --- a/openvidu-node-client/src/Recording.ts +++ b/openvidu-node-client/src/Recording.ts @@ -49,7 +49,7 @@ export class Recording { duration = 0; /** - * URL of the recording. You can access the file from there. It is `null` until recording is stopped. If OpenVidu Server configuration property `openvidu.recording.public-access` is false, this path will be secured with OpenVidu credentials + * URL of the recording. You can access the file from there. It is `null` until recording reaches "ready" or "failed" status. If OpenVidu Server configuration property `openvidu.recording.public-access` is false, this path will be secured with OpenVidu credentials */ url: string; diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java index 9e8a5cd4..bdff3b2f 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/RecordingManager.java @@ -418,9 +418,12 @@ public class RecordingManager { } } Recording recording = new Recording(json); - String recordingUrl = openviduConfig.getFinalUrl() + "recordings/" + recording.getId() + "/" - + recording.getName() + "." + this.getExtensionFromRecording(recording); - recording.setUrl(recordingUrl); + if (io.openvidu.java.client.Recording.Status.ready.equals(recording.getStatus()) + || io.openvidu.java.client.Recording.Status.failed.equals(recording.getStatus())) { + String recordingUrl = openviduConfig.getFinalUrl() + "recordings/" + recording.getId() + "/" + + recording.getName() + "." + this.getExtensionFromRecording(recording); + recording.setUrl(recordingUrl); + } return recording; } return null; diff --git a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java index acf27c63..d79ae21a 100644 --- a/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java +++ b/openvidu-test-e2e/src/test/java/io/openvidu/test/e2e/OpenViduTestAppE2eTest.java @@ -2184,7 +2184,7 @@ public class OpenViduTestAppE2eTest { Assert.assertEquals("Wrong recording session id", session.getSessionId(), recording.getSessionId()); Assert.assertEquals("Wrong recording duration", 0, recording.getDuration(), 0.0001); Assert.assertEquals("Wrong recording size", 0, recording.getSize()); - Assert.assertNotNull("Wrong recording url", recording.getUrl()); + Assert.assertNull("Wrong recording url", recording.getUrl()); Assert.assertEquals("Wrong recording output mode", Recording.OutputMode.INDIVIDUAL, recording.getOutputMode()); Assert.assertNull("Wrong recording layout", recording.getRecordingLayout()); Assert.assertNull("Wrong recording custom layout", recording.getCustomLayout()); @@ -2208,7 +2208,7 @@ public class OpenViduTestAppE2eTest { recording.getDuration() > 0); Assert.assertTrue("Wrong recording size. Excepected > 0 and was " + recording.getSize(), recording.getSize() > 0); - Assert.assertNull("Wrong recording url. Expected not null and was null", recording.getUrl()); + Assert.assertNotNull(recording.getUrl()); Assert.assertEquals("Wrong recording status. Expected ready and was " + recording.getStatus().name(), Recording.Status.ready, recording.getStatus()); Assert.assertFalse("Session shouldn't be being recorded", session.isBeingRecorded()); @@ -2260,7 +2260,7 @@ public class OpenViduTestAppE2eTest { Assert.assertTrue("Wrong recording duration", recording2.getDuration() > 0); Assert.assertTrue("Wrong recording size", recording2.getSize() > 0); - Assert.assertNull("Wrong recording url", recording2.getUrl()); + Assert.assertNotNull("Wrong recording url", recording2.getUrl()); Assert.assertEquals("Wrong recording status", Recording.Status.ready, recording2.getStatus()); Assert.assertFalse("Session shouldn't be being recorded", session.isBeingRecorded()); Assert.assertFalse("Session.fetch() should return false", session.fetch());