From 08589d432428dfa4d76366bae1a5a6877b94dbf3 Mon Sep 17 00:00:00 2001 From: Matthew Lee Date: Fri, 18 Jan 2019 17:37:29 +0800 Subject: [PATCH 1/2] Add Specific Encoding Webhooks --- .../api/resource/EncodingResource.php | 13 +++- .../container/EncodingWebhookContainer.php | 76 +++++++++++++++++++ src/Bitmovin/api/util/ApiUrls.php | 6 +- 3 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 src/Bitmovin/api/resource/container/EncodingWebhookContainer.php diff --git a/src/Bitmovin/api/resource/EncodingResource.php b/src/Bitmovin/api/resource/EncodingResource.php index 1ace3fc..42f0668 100644 --- a/src/Bitmovin/api/resource/EncodingResource.php +++ b/src/Bitmovin/api/resource/EncodingResource.php @@ -9,6 +9,7 @@ use Bitmovin\api\model\encodings\StartLiveEncodingRequest; use Bitmovin\api\model\Status; use Bitmovin\api\resource\encodings\streams\muxings\MuxingContainer; +use Bitmovin\api\resource\container\EncodingWebhookContainer; use Bitmovin\api\util\ApiUrls; use Bitmovin\api\util\RouteHelper; use JMS\Serializer\SerializerBuilder; @@ -54,7 +55,17 @@ public function muxings(Encoding $encoding) { return new MuxingContainer($encoding, parent::getApiKey()); } - + + /** + * @param Encoding $encoding + * + * @return EncodingWebhookContainer + */ + public function webhooks(Encoding $encoding) + { + return new EncodingWebhookContainer($encoding, parent::getApiKey()); + } + /** * @param Encoding $encoding */ diff --git a/src/Bitmovin/api/resource/container/EncodingWebhookContainer.php b/src/Bitmovin/api/resource/container/EncodingWebhookContainer.php new file mode 100644 index 0000000..02b48ba --- /dev/null +++ b/src/Bitmovin/api/resource/container/EncodingWebhookContainer.php @@ -0,0 +1,76 @@ + $encoding->getId() + ); + + $baseUriEncodingFinished = RouteHelper::buildURI(ApiUrls::SPECIFIC_WEBHOOK_ENCODING_FINISHED, $routeReplacementMap); + $baseUriEncodingError = RouteHelper::buildURI(ApiUrls::SPECIFIC_WEBHOOK_ENCODING_ERROR, $routeReplacementMap); + $baseUriTransferFinished = RouteHelper::buildURI(ApiUrls::SPECIFIC_WEBHOOK_TRANSFER_FINISHED, $routeReplacementMap); + $baseUriTransferError = RouteHelper::buildURI(ApiUrls::SPECIFIC_WEBHOOK_TRANSFER_ERROR, $routeReplacementMap); + + $this->encodingFinished = new WebhookResource($baseUriEncodingFinished, Webhook::class, $apiKey); + $this->encodingError = new WebhookResource($baseUriEncodingError, Webhook::class, $apiKey); + $this->transferFinished = new WebhookResource($baseUriTransferFinished, Webhook::class, $apiKey); + $this->transferError = new WebhookResource($baseUriTransferError, Webhook::class, $apiKey); + } + + /** + * @return WebhookResource + */ + public function encodingFinished() + { + return $this->encodingFinished; + } + + /** + * @return WebhookResource + */ + public function encodingError() + { + return $this->encodingError; + } + + /** + * @return WebhookResource + */ + public function transferFinished() + { + return $this->transferFinished; + } + + /** + * @return WebhookResource + */ + public function transferError() + { + return $this->transferError; + } + +} \ No newline at end of file diff --git a/src/Bitmovin/api/util/ApiUrls.php b/src/Bitmovin/api/util/ApiUrls.php index 8dfb59e..8217285 100644 --- a/src/Bitmovin/api/util/ApiUrls.php +++ b/src/Bitmovin/api/util/ApiUrls.php @@ -139,5 +139,9 @@ final class ApiUrls const WEBHOOK_ENCODING_ERROR = "notifications/webhooks/encoding/encodings/error"; const WEBHOOK_TRANSFER_FINISHED = "notifications/webhooks/encoding/transfers/finished"; const WEBHOOK_TRANSFER_ERROR = "notifications/webhooks/encoding/transfers/error"; - + + const SPECIFIC_WEBHOOK_ENCODING_FINISHED = "notifications/webhooks/encoding/encodings/{encoding_id}/finished"; + const SPECIFIC_WEBHOOK_ENCODING_ERROR = "notifications/webhooks/encoding/encodings/{encoding_id}/error"; + const SPECIFIC_WEBHOOK_TRANSFER_FINISHED = "notifications/webhooks/encoding/transfers/{encoding_id}/finished"; + const SPECIFIC_WEBHOOK_TRANSFER_ERROR = "notifications/webhooks/encoding/transfers/{encoding_id}/error"; } \ No newline at end of file From 4b0981694bd0491fb5c36352cd1eba10a3e3cd43 Mon Sep 17 00:00:00 2001 From: Matthew Lee Date: Fri, 1 Feb 2019 15:53:04 +0800 Subject: [PATCH 2/2] Added Test --- test/api/webhooks/WebhookResourceTest.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/api/webhooks/WebhookResourceTest.php b/test/api/webhooks/WebhookResourceTest.php index 7f477df..d7073ca 100644 --- a/test/api/webhooks/WebhookResourceTest.php +++ b/test/api/webhooks/WebhookResourceTest.php @@ -309,5 +309,18 @@ public function testListTransferError() $createdWebhooks = $this->apiClient->webhooks()->transferError()->listPage(0, 100); $this->assertTrue(sizeof($createdWebhooks) > 0); } + + /** + * @param Encoding $encoding + * + * @return Encoding + * @throws BitmovinException + */ + private function createEncoding(Encoding $encoding) + { + $apiClient = $this->getApiClient(); + + return $apiClient->encodings()->create($encoding); + } }