Skip to content

Commit c4cd34f

Browse files
committed
Fix offset/count query string params in listArchives()
1 parent 3316011 commit c4cd34f

File tree

3 files changed

+61
-3
lines changed

3 files changed

+61
-3
lines changed

src/OpenTok/Util/Client.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,17 @@ public function forceDisconnect($sessionId,$connectionId)
230230
public function listArchives($offset, $count)
231231
{
232232
$request = new Request('GET', '/v2/project/'.$this->apiKey.'/archive');
233-
if ($offset != 0) $request->getQuery()->set('offset', $offset);
234-
if (!empty($count)) $request->getQuery()->set('count', $count);
233+
$queryParams = [];
234+
if ($offset != 0) {
235+
$queryParams['offset'] = $offset;
236+
}
237+
if (!empty($count)) {
238+
$queryParams['count'] = $count;
239+
}
235240
try {
236-
$response = $this->client->send($request);
241+
$response = $this->client->send($request, [
242+
'query' => $queryParams
243+
]);
237244
$archiveListJson = json_decode($response->getBody(), true);
238245
} catch (\Exception $e) {
239246
$this->handleException($e);

tests/OpenTok/OpenTokTest.php

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -844,6 +844,42 @@ public function testListsArchives()
844844
// objects
845845
}
846846

847+
public function testListsArchivesWithOffsetAndCount()
848+
{
849+
// Arrange
850+
$this->setupOTWithMocks([[
851+
'code' => 200,
852+
'headers' => [
853+
'Content-Type' => 'application/json'
854+
],
855+
'path' => 'v2/project/APIKEY/archive/get_second'
856+
]]);
857+
858+
// Act
859+
$archiveList = $this->opentok->listArchives(1, 1);
860+
861+
// Assert
862+
$this->assertCount(1, $this->historyContainer);
863+
864+
$request = $this->historyContainer[0]['request'];
865+
$this->assertEquals('GET', strtoupper($request->getMethod()));
866+
$this->assertEquals('/v2/project/'.$this->API_KEY.'/archive', $request->getUri()->getPath());
867+
$this->assertEquals('api.opentok.com', $request->getUri()->getHost());
868+
$this->assertEquals('https', $request->getUri()->getScheme());
869+
870+
$authString = $request->getHeaderLine('X-OPENTOK-AUTH');
871+
$this->assertEquals(true, TestHelpers::validateOpenTokAuthHeader($this->API_KEY, $this->API_SECRET, $authString));
872+
873+
// TODO: test the dynamically built User Agent string
874+
$userAgent = $request->getHeaderLine('User-Agent');
875+
$this->assertNotEmpty($userAgent);
876+
$this->assertStringStartsWith('OpenTok-PHP-SDK/3.1.1', $userAgent);
877+
878+
$this->assertInstanceOf('OpenTok\ArchiveList', $archiveList);
879+
$this->assertEquals(1, $archiveList->totalCount());
880+
$this->assertEquals('832641bf-5dbf-41a1-ad94-fea213e59a92', $archiveList->getItems()[0]->id);
881+
}
882+
847883
/**
848884
* @expectedException InvalidArgumentException
849885
*/
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"count" : 1,
3+
"items" : [ {
4+
"createdAt" : 1394321113000,
5+
"duration" : 1294,
6+
"id" : "832641bf-5dbf-41a1-ad94-fea213e59a92",
7+
"name" : "showtime",
8+
"partnerId" : 854511,
9+
"reason" : "",
10+
"sessionId" : "2_MX44NTQ1MTF-flR1ZSBOb3YgMTIgMDk6NDA6NTkgUFNUIDIwMTN-MC43NjU0Nzh-",
11+
"size" : 42165242,
12+
"status" : "available",
13+
"url" : "http://tokbox.com.archive2.s3.amazonaws.com/854511%2F832641bf-5dbf-41a1-ad94-fea213e59a92%2Farchive.mp4?Expires=1394397391&AWSAccessKeyId=AKIAI6LQCPIXYVWCQV6Q&Signature=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
14+
} ]
15+
}

0 commit comments

Comments
 (0)