2023-03-28 20:13:08 +00:00
|
|
|
<?php
|
|
|
|
|
2023-04-25 09:01:56 +00:00
|
|
|
namespace App\Http\Livewire\Project\Application;
|
2023-03-28 20:13:08 +00:00
|
|
|
|
2023-05-03 05:15:45 +00:00
|
|
|
use App\Enums\ActivityTypes;
|
2023-05-31 10:38:36 +00:00
|
|
|
use App\Models\Application;
|
2023-05-23 07:53:24 +00:00
|
|
|
use Illuminate\Support\Facades\Redis;
|
2023-03-28 20:13:08 +00:00
|
|
|
use Livewire\Component;
|
2023-03-31 11:32:07 +00:00
|
|
|
use Spatie\Activitylog\Models\Activity;
|
2023-03-28 20:13:08 +00:00
|
|
|
|
2023-05-24 12:26:50 +00:00
|
|
|
class DeploymentLogs extends Component
|
2023-03-28 20:13:08 +00:00
|
|
|
{
|
2023-05-31 10:38:36 +00:00
|
|
|
public Application $application;
|
2023-03-28 20:13:08 +00:00
|
|
|
public $activity;
|
|
|
|
public $isKeepAliveOn = true;
|
2023-03-31 11:32:07 +00:00
|
|
|
public $deployment_uuid;
|
2023-03-28 20:13:08 +00:00
|
|
|
public function polling()
|
|
|
|
{
|
2023-05-31 12:42:37 +00:00
|
|
|
$this->emit('deploymentFinished');
|
2023-05-23 07:53:24 +00:00
|
|
|
if (is_null($this->activity) && isset($this->deployment_uuid)) {
|
2023-05-03 05:15:45 +00:00
|
|
|
$this->activity = Activity::query()
|
|
|
|
->where('properties->type', '=', ActivityTypes::DEPLOYMENT->value)
|
|
|
|
->where('properties->type_uuid', '=', $this->deployment_uuid)
|
2023-03-31 11:32:07 +00:00
|
|
|
->first();
|
|
|
|
} else {
|
|
|
|
$this->activity?->refresh();
|
|
|
|
}
|
|
|
|
|
2023-05-23 07:53:24 +00:00
|
|
|
if (data_get($this->activity, 'properties.status') == 'finished' || data_get($this->activity, 'properties.status') == 'failed') {
|
2023-03-28 20:13:08 +00:00
|
|
|
$this->isKeepAliveOn = false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|