Skip to content
6 changes: 5 additions & 1 deletion src/Services/WebinarService.php
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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 &&
Expand Down
13 changes: 10 additions & 3 deletions tests/APIs/WebinarListForUserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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');
Expand Down
Loading