diff --git a/src/Services/WebinarService.php b/src/Services/WebinarService.php index 097e7d8..97b4b21 100644 --- a/src/Services/WebinarService.php +++ b/src/Services/WebinarService.php @@ -213,7 +213,7 @@ public function extendResponse($webinarSimpleResource, $isApi = false) WebinarSimpleResource::extend(function (WebinarSimpleResource $webinar) use ($isApi) { $user = auth()->user(); $extendedArray = []; - if (($user && $this->isTrainer($user, $webinar->resource)) || !$isApi) { + if ($this->youtubeServiceContract->isConfigured() && (($user && $this->isTrainer($user, $webinar->resource)) || !$isApi)) { $extendedArray = $webinar->resource->hasYT() ? [ 'yt_stream_url' => $webinar->resource->yt_stream_url, @@ -289,6 +289,10 @@ public function prepareYTDtoBroadcast(Webinar $webinar): YTBroadcastDto public function hasYT(Webinar $webinar): bool { + if (!$this->youtubeServiceContract->isConfigured()) { + return false; + } + try { $ytBroadcastDto = $this->prepareYTDtoBroadcast($webinar); return $this->youtubeServiceContract->getYtLiveStream($ytBroadcastDto)->count() > 0 && diff --git a/tests/APIs/WebinarListForUserTest.php b/tests/APIs/WebinarListForUserTest.php index e77c84e..b10eb02 100644 --- a/tests/APIs/WebinarListForUserTest.php +++ b/tests/APIs/WebinarListForUserTest.php @@ -25,13 +25,20 @@ protected function setUp(): void parent::setUp(); $this->seed(WebinarsPermissionSeeder::class); - $youtubeServiceContract = $this->mock(YoutubeServiceContract::class); - $youtubeServiceContract->shouldReceive('isConfigured')->zeroOrMoreTimes()->andReturn(true)->byDefault(); - $youtubeServiceContract->shouldReceive('getYtLiveStream')->zeroOrMoreTimes()->andReturn(collect([1]))->byDefault(); + config([ + 'services.youtube.client_id' => null, + 'services.youtube.client_secret' => null, + 'services.youtube.api_key' => null, + 'services.youtube.refresh_token' => null, + 'services.youtube.redirect_url' => null, + ]); $this->app->forgetInstance(WebinarServiceContract::class); $this->app->forgetInstance(WebinarService::class); + $youtubeServiceContract = $this->mock(YoutubeServiceContract::class); + $youtubeServiceContract->shouldReceive('isConfigured')->zeroOrMoreTimes()->andReturn(false)->byDefault(); + $this->user = User::factory()->create(); $this->user->guard_name = 'api'; $this->user->assignRole('tutor');