diff --git a/lib/GetStream/Stream/Activities.php b/lib/GetStream/Stream/Activities.php index 39d084e..369c634 100644 --- a/lib/GetStream/Stream/Activities.php +++ b/lib/GetStream/Stream/Activities.php @@ -35,12 +35,18 @@ protected function getHttpRequestHeaders($resource, $action) return $headers; } - public function _getActivities($query_params) + public function _getActivities($query_params, $enrich = false) { if (empty($query_params)) { return; } - return $this->makeHttpRequest('activities/', 'GET', null, $query_params); + $url = 'activities/'; + + if($enrich) { + $url = "enrich/$url"; + } + + return $this->makeHttpRequest($url, 'GET', null, $query_params); } } diff --git a/lib/GetStream/Stream/Client.php b/lib/GetStream/Stream/Client.php index d84a4b1..c51eb38 100644 --- a/lib/GetStream/Stream/Client.php +++ b/lib/GetStream/Stream/Client.php @@ -229,7 +229,7 @@ public function buildRequestUrl($uri) return "{$baseUrl}/{$this->api_version}/{$uri}"; } - public function getActivities($ids=null, $foreign_id_times=null) + public function getActivities($ids=null, $foreign_id_times=null, $enrich=false, $reactions = null) { if($ids!==null){ $query_params = ["ids" => join(',', $ids)]; @@ -251,9 +251,28 @@ public function getActivities($ids=null, $foreign_id_times=null) ]; } + + if($reactions !== null){ + if(!is_array($reactions)){ + throw new StreamFeedException("reactions argument should be an associative array"); + } + if(isset($reactions["own"]) && $reactions["own"]){ + $query_params["withOwnReactions"] = true; + $enrich = true; + } + if(isset($reactions["recent"]) && $reactions["recent"]){ + $query_params["withRecentReactions"] = true; + $enrich = true; + } + if(isset($reactions["counts"]) && $reactions["counts"]){ + $query_params["withReactionCounts"] = true; + $enrich = true; + } + } + $token = $this->signer->jwtScopeToken('*', 'activities', '*'); $activities = new Activities($this, $this->api_key, $token); - return $activities->_getActivities($query_params); + return $activities->_getActivities($query_params, $enrich); } public function batchPartialActivityUpdate($data) diff --git a/tests/integration/FeedTest.php b/tests/integration/FeedTest.php index eb3c241..b34f0ed 100644 --- a/tests/integration/FeedTest.php +++ b/tests/integration/FeedTest.php @@ -832,5 +832,9 @@ public function testGetActivities(){ $response = $this->client->getActivities(null, $foreign_id_times=$foreign_id_times)['results']; $this->assertCount(2, $response); $this->assertEquals(sort($activities), sort($response), $canonicalize=true); + + $response = $this->client->getActivities($ids, null, false, array('withReactionCounts' => true)); + $this->assertCount(2,$response); + $this->assertEquals($response["results"][0]["reaction_counts"], 0); } }