From 80f130b7f9d8e5373c8327f3e80a4cd8f32cf689 Mon Sep 17 00:00:00 2001 From: Olivier Delbruyere Date: Fri, 11 Oct 2019 11:03:24 +0200 Subject: [PATCH] Add `FeedInterface`, `BaseFeedInterface`, and `ClientInterface` --- lib/GetStream/Stream/Activities.php | 4 +- .../Stream/ActivityUpdateOperation.php | 4 +- lib/GetStream/Stream/Analytics.php | 4 +- lib/GetStream/Stream/BaseFeed.php | 8 +- lib/GetStream/Stream/BaseFeedInterface.php | 140 ++++++++++++++++++ lib/GetStream/Stream/Batcher.php | 4 +- lib/GetStream/Stream/Client.php | 6 +- lib/GetStream/Stream/ClientInterface.php | 101 +++++++++++++ lib/GetStream/Stream/Collections.php | 7 +- lib/GetStream/Stream/Feed.php | 2 +- lib/GetStream/Stream/FeedInterface.php | 30 ++++ lib/GetStream/Stream/Personalization.php | 7 +- lib/GetStream/Stream/Reactions.php | 5 +- lib/GetStream/Stream/Users.php | 7 +- 14 files changed, 298 insertions(+), 31 deletions(-) create mode 100644 lib/GetStream/Stream/BaseFeedInterface.php create mode 100644 lib/GetStream/Stream/ClientInterface.php create mode 100644 lib/GetStream/Stream/FeedInterface.php diff --git a/lib/GetStream/Stream/Activities.php b/lib/GetStream/Stream/Activities.php index 97b208e..39d084e 100644 --- a/lib/GetStream/Stream/Activities.php +++ b/lib/GetStream/Stream/Activities.php @@ -10,11 +10,11 @@ class Activities extends Feed protected $token; /** - * @param Client $client + * @param ClientInterface $client * @param string $api_key * @param string $token */ - public function __construct($client, $api_key, $token) + public function __construct(ClientInterface $client, $api_key, $token) { $this->client = $client; $this->api_key = $api_key; diff --git a/lib/GetStream/Stream/ActivityUpdateOperation.php b/lib/GetStream/Stream/ActivityUpdateOperation.php index c4023db..5e6ad3c 100644 --- a/lib/GetStream/Stream/ActivityUpdateOperation.php +++ b/lib/GetStream/Stream/ActivityUpdateOperation.php @@ -10,11 +10,11 @@ class ActivityUpdateOperation extends Feed protected $token; /** - * @param Client $client + * @param ClientInterface $client * @param string $api_key * @param string $token */ - public function __construct($client, $api_key, $token) + public function __construct(ClientInterface $client, $api_key, $token) { $this->client = $client; $this->api_key = $api_key; diff --git a/lib/GetStream/Stream/Analytics.php b/lib/GetStream/Stream/Analytics.php index 9ba6bbc..0916dc2 100644 --- a/lib/GetStream/Stream/Analytics.php +++ b/lib/GetStream/Stream/Analytics.php @@ -12,11 +12,11 @@ class Analytics extends Feed protected $token; /** - * @param Client $client + * @param ClientInterface $client * @param string $api_key * @param string $token */ - public function __construct($client, $api_key, $token) + public function __construct(ClientInterface $client, $api_key, $token) { $this->client = $client; $this->api_key = $api_key; diff --git a/lib/GetStream/Stream/BaseFeed.php b/lib/GetStream/Stream/BaseFeed.php index 1186d79..7072bbc 100644 --- a/lib/GetStream/Stream/BaseFeed.php +++ b/lib/GetStream/Stream/BaseFeed.php @@ -2,7 +2,7 @@ namespace GetStream\Stream; -class BaseFeed +class BaseFeed implements BaseFeedInterface { /** * @var string @@ -35,12 +35,12 @@ class BaseFeed protected $api_key; /** - * @var Client + * @var ClientInterface */ protected $client; /** - * @param Client $client + * @param ClientInterface $client * @param string $feed_slug * @param string $user_id * @param string $api_key @@ -48,7 +48,7 @@ class BaseFeed * * @throws StreamFeedException */ - public function __construct($client, $feed_slug, $user_id, $api_key, $token) + public function __construct(ClientInterface $client, $feed_slug, $user_id, $api_key, $token) { if (!$this->validFeedSlug($feed_slug)) { throw new StreamFeedException('feed_slug can only contain alphanumeric characters or underscores'); diff --git a/lib/GetStream/Stream/BaseFeedInterface.php b/lib/GetStream/Stream/BaseFeedInterface.php new file mode 100644 index 0000000..2c98595 --- /dev/null +++ b/lib/GetStream/Stream/BaseFeedInterface.php @@ -0,0 +1,140 @@ +client = $client; $this->signer = $signer; diff --git a/lib/GetStream/Stream/Client.php b/lib/GetStream/Stream/Client.php index 97ce0f9..d84a4b1 100644 --- a/lib/GetStream/Stream/Client.php +++ b/lib/GetStream/Stream/Client.php @@ -6,7 +6,7 @@ const VERSION = '2.6.0'; -class Client +class Client implements ClientInterface { const API_ENDPOINT = 'stream-io-api.com/api'; @@ -131,7 +131,7 @@ public function createUserToken($user_id, array $extra_data=null) } /** - * @param BaseFeed $feed + * @param BaseFeedInterface $feed * @param string $resource * @param string $action * @return string @@ -146,7 +146,7 @@ public function createFeedJWTToken($feed, $resource, $action) * @param string $feed_slug * @param string $user_id * @param string|null $token - * @return Feed + * @return FeedInterface */ public function feed($feed_slug, $user_id, $token = null) { diff --git a/lib/GetStream/Stream/ClientInterface.php b/lib/GetStream/Stream/ClientInterface.php new file mode 100644 index 0000000..4b26a74 --- /dev/null +++ b/lib/GetStream/Stream/ClientInterface.php @@ -0,0 +1,101 @@ +apiKey = $apiKey; $this->apiSecret = $apiSecret; diff --git a/lib/GetStream/Stream/Feed.php b/lib/GetStream/Stream/Feed.php index ca7f588..df4e27d 100644 --- a/lib/GetStream/Stream/Feed.php +++ b/lib/GetStream/Stream/Feed.php @@ -7,7 +7,7 @@ use GuzzleHttp\HandlerStack; use GuzzleHttp\Psr7\Uri; -class Feed extends BaseFeed +class Feed extends BaseFeed implements FeedInterface { /** * @var string diff --git a/lib/GetStream/Stream/FeedInterface.php b/lib/GetStream/Stream/FeedInterface.php new file mode 100644 index 0000000..d665079 --- /dev/null +++ b/lib/GetStream/Stream/FeedInterface.php @@ -0,0 +1,30 @@ +apiKey = $apiKey; $this->apiSecret = $apiSecret; diff --git a/lib/GetStream/Stream/Reactions.php b/lib/GetStream/Stream/Reactions.php index 16b4d5a..1a9f067 100644 --- a/lib/GetStream/Stream/Reactions.php +++ b/lib/GetStream/Stream/Reactions.php @@ -3,7 +3,6 @@ namespace GetStream\Stream; use Firebase\JWT\JWT; -use GetStream\Stream\Client as StreamClient; use GuzzleHttp\Client as GuzzleClient; use GuzzleHttp\Exception\ClientException; use GuzzleHttp\HandlerStack; @@ -27,11 +26,11 @@ class Reactions private $apiSecret; /** - * @param \GetStream\Stream\Client $streamClient + * @param ClientInterface $streamClient * @param string $apiKey * @param string $apiSecret */ - public function __construct(StreamClient $streamClient, $apiKey, $apiSecret) + public function __construct(ClientInterface $streamClient, $apiKey, $apiSecret) { $this->apiKey = $apiKey; $this->apiSecret = $apiSecret; diff --git a/lib/GetStream/Stream/Users.php b/lib/GetStream/Stream/Users.php index ab3373a..5ceb87d 100644 --- a/lib/GetStream/Stream/Users.php +++ b/lib/GetStream/Stream/Users.php @@ -3,7 +3,6 @@ namespace GetStream\Stream; use Firebase\JWT\JWT; -use GetStream\Stream\Client as StreamClient; use GuzzleHttp\Client as GuzzleClient; use GuzzleHttp\Exception\ClientException; use GuzzleHttp\HandlerStack; @@ -12,7 +11,7 @@ class Users { /** - * @var Client + * @var ClientInterface */ private $client; @@ -27,11 +26,11 @@ class Users private $apiSecret; /** - * @param \GetStream\Stream\Client $streamClient + * @param ClientInterface $streamClient * @param string $apiKey * @param string $apiSecret */ - public function __construct(StreamClient $streamClient, $apiKey, $apiSecret) + public function __construct(ClientInterface $streamClient, $apiKey, $apiSecret) { $this->apiKey = $apiKey; $this->apiSecret = $apiSecret;