Skip to content

Commit 37775cb

Browse files
authored
Merge branch 'main' into feature/jwt-change
2 parents ef5a82f + be01880 commit 37775cb

File tree

5 files changed

+49
-2
lines changed

5 files changed

+49
-2
lines changed

src/OpenTok/Archive.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ public function __construct($archiveData, $options = array())
137137
Validators::validateHasStreamMode($streamMode);
138138

139139
$this->data = $archiveData;
140+
140141
if (isset($this->data['multiArchiveTag'])) {
141142
$this->multiArchiveTag = $this->data['multiArchiveTag'];
142143
}
@@ -162,6 +163,7 @@ public function __get($name)
162163
if ($this->isDeleted) {
163164
// TODO: throw an logic error about not being able to stop an archive thats deleted
164165
}
166+
165167
switch ($name) {
166168
case 'createdAt':
167169
case 'duration':
@@ -178,6 +180,7 @@ public function __get($name)
178180
case 'outputMode':
179181
case 'resolution':
180182
case 'streamMode':
183+
case 'maxBitrate':
181184
return $this->data[$name];
182185
case 'multiArchiveTag':
183186
return $this->multiArchiveTag;

src/OpenTok/OpenTok.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -555,9 +555,19 @@ public function startArchive(string $sessionId, $options = []): Archive
555555
'resolution' => null,
556556
'streamMode' => StreamMode::AUTO,
557557
);
558+
559+
// Horrible hack to workaround the defaults behaviour
560+
if (isset($options['maxBitrate'])) {
561+
$maxBitrate = $options['maxBitrate'];
562+
}
563+
558564
$options = array_merge($defaults, array_intersect_key($options, $defaults));
559565
list($name, $hasVideo, $hasAudio, $outputMode, $resolution, $streamMode) = array_values($options);
560566

567+
if (isset($maxBitrate)) {
568+
$options['maxBitrate'] = $maxBitrate;
569+
}
570+
561571
Validators::validateSessionId($sessionId);
562572
Validators::validateArchiveName($name);
563573

tests/OpenTokTest/OpenTokTest.php

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -783,7 +783,7 @@ public function testStartsArchive(): void
783783
$sessionId = '2_MX44NTQ1MTF-flR1ZSBOb3YgMTIgMDk6NDA6NTkgUFNUIDIwMTN-MC43NjU0Nzh-';
784784

785785
// Act
786-
$archive = $this->opentok->startArchive($sessionId);
786+
$archive = $this->opentok->startArchive($sessionId, ['maxBitrate' => 2000000]);
787787

788788
// Assert
789789
$this->assertCount(1, $this->historyContainer);
@@ -806,6 +806,7 @@ public function testStartsArchive(): void
806806
$this->assertEquals('', $archive->reason);
807807
$this->assertEquals('started', $archive->status);
808808
$this->assertEquals(OutputMode::COMPOSED, $archive->outputMode);
809+
$this->assertEquals(2000000, $archive->maxBitrate);
809810
$this->assertNull($archive->name);
810811
$this->assertNull($archive->url);
811812
$this->assertTrue($archive->hasVideo);
@@ -1273,7 +1274,38 @@ public function testGetsArchive(): void
12731274
$this->assertEquals(true, TestHelpers::validateOpenTokAuthHeader($this->API_KEY, $this->API_SECRET, $authString));
12741275

12751276
$this->assertInstanceOf('OpenTok\Archive', $archive);
1276-
// TODO: test the properties of the actual archive object
1277+
}
1278+
1279+
public function testGetsArchiveWithMaxBitrate(): void
1280+
{
1281+
// Arrange
1282+
$this->setupOTWithMocks([[
1283+
'code' => 200,
1284+
'headers' => [
1285+
'Content-Type' => 'application/json'
1286+
],
1287+
'path' => 'v2/project/APIKEY/archive/ARCHIVEID/get'
1288+
]]);
1289+
1290+
$archiveId = '063e72a4-64b4-43c8-9da5-eca071daab89';
1291+
1292+
// Act
1293+
$archive = $this->opentok->getArchive($archiveId);
1294+
1295+
// Assert
1296+
$this->assertCount(1, $this->historyContainer);
1297+
1298+
$request = $this->historyContainer[0]['request'];
1299+
$this->assertEquals('GET', strtoupper($request->getMethod()));
1300+
$this->assertEquals('/v2/project/'.$this->API_KEY.'/archive/'.$archiveId, $request->getUri()->getPath());
1301+
$this->assertEquals('api.opentok.com', $request->getUri()->getHost());
1302+
$this->assertEquals('https', $request->getUri()->getScheme());
1303+
1304+
$authString = $request->getHeaderLine('X-OPENTOK-AUTH');
1305+
$this->assertEquals(true, TestHelpers::validateOpenTokAuthHeader($this->API_KEY, $this->API_SECRET, $authString));
1306+
1307+
$this->assertInstanceOf('OpenTok\Archive', $archive);
1308+
$this->assertEquals(2000000, $archive->maxBitrate);
12771309
}
12781310

12791311
public function testDeletesArchive(): void

tests/mock/v2/project/APIKEY/archive/ARCHIVEID/get

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"duration" : 199,
44
"id" : "063e72a4-64b4-43c8-9da5-eca071daab89",
55
"name" : "showtime",
6+
"maxBitrate": 2000000,
67
"partnerId" : 854511,
78
"reason" : "",
89
"sessionId" : "2_MX44NTQ1MTF-flR1ZSBOb3YgMTIgMDk6NDA6NTkgUFNUIDIwMTN-MC43NjU0Nzh-",

tests/mock/v2/project/APIKEY/archive/session

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"duration" : 0,
44
"id" : "832641bf-5dbf-41a1-ad94-fea213e59a92",
55
"name" : null,
6+
"maxBitrate": 2000000,
67
"partnerId" : 12345678,
78
"reason" : "",
89
"sessionId" : "2_MX44NTQ1MTF-flR1ZSBOb3YgMTIgMDk6NDA6NTkgUFNUIDIwMTN-MC43NjU0Nzh-",

0 commit comments

Comments
 (0)