Skip to content

Commit 786891a

Browse files
committed
complete getActivities
1 parent a4912ce commit 786891a

3 files changed

Lines changed: 63 additions & 5 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<?php
2+
3+
namespace GetStream\Stream;
4+
5+
class Activities extends Feed
6+
{
7+
/**
8+
* @var string
9+
*/
10+
protected $token;
11+
12+
/**
13+
* @param Client $client
14+
* @param string $api_key
15+
* @param string $token
16+
*/
17+
public function __construct($client, $api_key, $token)
18+
{
19+
$this->client = $client;
20+
$this->api_key = $api_key;
21+
$this->token = $token;
22+
}
23+
24+
/**
25+
* @param string $resource
26+
* @param string $action
27+
*
28+
* @return array
29+
*/
30+
protected function getHttpRequestHeaders($resource, $action)
31+
{
32+
$headers = parent::getHttpRequestHeaders($resource, $action);
33+
$headers['Authorization'] = $this->token;
34+
35+
return $headers;
36+
}
37+
38+
public function _getActivities($query_params)
39+
{
40+
if (empty($query_params)) {
41+
return;
42+
}
43+
44+
return $this->makeHttpRequest('activities/', 'GET', null, $query_params);
45+
}
46+
}

lib/GetStream/Stream/Client.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
namespace GetStream\Stream;
33

4+
use DateTime;
45
use Exception;
56

67
const VERSION = '2.6.0';
@@ -237,10 +238,15 @@ public function getActivities($ids=null, $foreign_id_times=null)
237238
$times = [];
238239
foreach($foreign_id_times as $fit){
239240
$fids[] = $fit[0];
240-
$times[] = $fit[1];
241+
try {
242+
$times[] = $fit[1]->format(DateTime::ISO8601);
243+
} catch(Exception $e) {
244+
// assume it's in the right format already
245+
$times[] = $fit[1];
246+
}
241247
}
242248
$query_params = [
243-
"foreign_ids" => join(',', $fid),
249+
"foreign_ids" => join(',', $fids),
244250
"timestamps" => join(',', $times)
245251
];
246252

@@ -255,7 +261,6 @@ public function updateActivities($activities)
255261
if (empty($activities)) {
256262
return;
257263
}
258-
259264
$token = $this->signer->jwtScopeToken('*', 'activities', '*');
260265
$activityUpdateOp = new ActivityUpdateOperation($this, $this->api_key, $token);
261266
return $activityUpdateOp->updateActivities($activities);
@@ -266,7 +271,6 @@ public function updateActivity($activity)
266271
return $this->updateActivities([$activity]);
267272
}
268273

269-
270274
/**
271275
* Creates a redirect url for tracking the given events in the context of
272276
* getstream.io/personalization

tests/integration/FeedTest.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,14 @@ public function testGetActivities(){
696696
$this->assertCount(2, $activities);
697697
$ids = [$activities[0]['id'], $activities[1]['id']];
698698
$response = $this->client->getActivities($ids=$ids)['results'];
699-
$this->assertEquals($activities, $response, $canonicalize=true);
699+
$this->assertCount(2, $response);
700+
$this->assertEquals(sort($activities), sort($response), $canonicalize=true);
701+
$foreign_id_times = [
702+
['fid:ga2', $now],
703+
['fid:ga1', $now],
704+
];
705+
$response = $this->client->getActivities(null, $foreign_id_times=$foreign_id_times)['results'];
706+
$this->assertCount(2, $response);
707+
$this->assertEquals(sort($activities), sort($response), $canonicalize=true);
700708
}
701709
}

0 commit comments

Comments
 (0)