Skip to content

Commit 79524fe

Browse files
authored
add support for GetRateLimits (#38)
1 parent 3cab78c commit 79524fe

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

lib/GetStream/StreamChat/Client.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,27 @@ public function getDevices($userId)
752752
return $this->get("devices", $data);
753753
}
754754

755+
public function getRateLimits($serverSide=false, $android=false, $ios=false, $web=false, $endpoints=null)
756+
{
757+
$data = [];
758+
if ($serverSide) {
759+
$data["server_side"] = "true";
760+
}
761+
if ($android) {
762+
$data["android"] = "true";
763+
}
764+
if ($ios) {
765+
$data["ios"] = "true";
766+
}
767+
if ($web) {
768+
$data["web"] = "true";
769+
}
770+
if ($endpoints !== null && is_array($endpoints)) {
771+
$data["endpoints"] = implode(",", $endpoints);
772+
}
773+
return $this->get("rate_limits", $data);
774+
}
775+
755776
/**
756777
* @param array $userId
757778
* @return mixed

tests/integration/IntegrationTest.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,29 @@ public function testDevices()
371371
$this->assertSame(count($response["devices"]), 1);
372372
}
373373

374+
public function testGetRateLimits()
375+
{
376+
$response = $this->client->getRateLimits();
377+
$this->assertTrue(array_key_exists("server_side", $response));
378+
$this->assertTrue(array_key_exists("android", $response));
379+
$this->assertTrue(array_key_exists("ios", $response));
380+
$this->assertTrue(array_key_exists("web", $response));
381+
$response = $this->client->getRateLimits(true);
382+
$this->assertTrue(array_key_exists("server_side", $response));
383+
$this->assertFalse(array_key_exists("android", $response));
384+
$this->assertFalse(array_key_exists("ios", $response));
385+
$this->assertFalse(array_key_exists("web", $response));
386+
$response = $this->client->getRateLimits(true, true, false, false, array("GetRateLimits", "SendMessage"));
387+
$this->assertTrue(array_key_exists("server_side", $response));
388+
$this->assertTrue(array_key_exists("android", $response));
389+
$this->assertFalse(array_key_exists("ios", $response));
390+
$this->assertFalse(array_key_exists("web", $response));
391+
$this->assertSame(count($response["android"]), 2);
392+
$this->assertSame(count($response["server_side"]), 2);
393+
$this->assertSame($response["android"]["GetRateLimits"]["Limit"], $response["android"]["GetRateLimits"]["Remaining"]);
394+
$this->assertTrue($response["server_side"]["GetRateLimits"]["Limit"] > $response["server_side"]["GetRateLimits"]["Remaining"]);
395+
}
396+
374397
public function testChannelBanUser()
375398
{
376399
$user = $this->getUser();

0 commit comments

Comments
 (0)