From 8d8dcb1a3eb4d019c7033a25d6f919603cda1c10 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 26 Jul 2023 15:20:04 +0200 Subject: [PATCH] fix: notifications --- .../Notifications/DiscordSettings.php | 2 +- .../Livewire/Notifications/EmailSettings.php | 3 +- app/Jobs/ApplicationContainerStatusJob.php | 4 +-- app/Jobs/ProxyCheckJob.php | 1 + .../ApplicationStoppedNotification.php | 33 ++++++++----------- .../DeployedSuccessfullyNotification.php | 8 ++--- .../DeployedWithErrorNotification.php | 8 ++--- .../emails/application-stopped.blade.php | 2 ++ .../notifications/discord-settings.blade.php | 4 ++- .../notifications/email-settings.blade.php | 4 ++- 10 files changed, 33 insertions(+), 36 deletions(-) create mode 100644 resources/views/emails/application-stopped.blade.php diff --git a/app/Http/Livewire/Notifications/DiscordSettings.php b/app/Http/Livewire/Notifications/DiscordSettings.php index c3c114d3b..c96d58ab9 100644 --- a/app/Http/Livewire/Notifications/DiscordSettings.php +++ b/app/Http/Livewire/Notifications/DiscordSettings.php @@ -14,7 +14,7 @@ class DiscordSettings extends Component 'model.discord.webhook_url' => 'required|url', 'model.discord_notifications.test' => 'nullable|boolean', 'model.discord_notifications.deployments' => 'nullable|boolean', - + 'model.discord_notifications.stopped' => 'nullable|boolean', ]; protected $validationAttributes = [ 'model.discord.webhook_url' => 'Discord Webhook', diff --git a/app/Http/Livewire/Notifications/EmailSettings.php b/app/Http/Livewire/Notifications/EmailSettings.php index bc8d69240..102c63b12 100644 --- a/app/Http/Livewire/Notifications/EmailSettings.php +++ b/app/Http/Livewire/Notifications/EmailSettings.php @@ -25,8 +25,7 @@ class EmailSettings extends Component 'model.smtp.test_recipients' => 'nullable', 'model.smtp_notifications.test' => 'nullable|boolean', 'model.smtp_notifications.deployments' => 'nullable|boolean', - 'model.discord_notifications.test' => 'nullable|boolean', - 'model.discord_notifications.deployments' => 'nullable|boolean', + 'model.smtp_notifications.stopped' => 'nullable|boolean', ]; protected $validationAttributes = [ 'model.smtp.from_address' => 'From Address', diff --git a/app/Jobs/ApplicationContainerStatusJob.php b/app/Jobs/ApplicationContainerStatusJob.php index 7bb1f5931..ac742c5e0 100644 --- a/app/Jobs/ApplicationContainerStatusJob.php +++ b/app/Jobs/ApplicationContainerStatusJob.php @@ -33,11 +33,9 @@ class ApplicationContainerStatusJob implements ShouldQueue, ShouldBeUnique } public function handle(): void { - ray('checking status of ' . $this->container_name); try { $status = get_container_status(server: $this->application->destination->server, container_id: $this->container_name, throwError: false); - ray($this->application->status, $status); - if ($this->application->status === 'running' && $status !== 'running') { + if ($this->application->status === 'running' && $status === 'stopped') { $this->application->environment->project->team->notify(new ApplicationStoppedNotification($this->application)); } diff --git a/app/Jobs/ProxyCheckJob.php b/app/Jobs/ProxyCheckJob.php index ab04d3d07..87e7c9bda 100755 --- a/app/Jobs/ProxyCheckJob.php +++ b/app/Jobs/ProxyCheckJob.php @@ -28,6 +28,7 @@ class ProxyCheckJob implements ShouldQueue if ($status === 'running') { continue; } + // $server->team->notify(new ProxyStoppedNotification($server)); resolve(StartProxy::class)($server); } } catch (\Throwable $th) { diff --git a/app/Notifications/Notifications/Application/ApplicationStoppedNotification.php b/app/Notifications/Notifications/Application/ApplicationStoppedNotification.php index 323ff6c19..87acd494f 100644 --- a/app/Notifications/Notifications/Application/ApplicationStoppedNotification.php +++ b/app/Notifications/Notifications/Application/ApplicationStoppedNotification.php @@ -40,35 +40,28 @@ class ApplicationStoppedNotification extends Notification implements ShouldQueue $channels = []; $isEmailEnabled = data_get($notifiable, 'smtp.enabled'); $isDiscordEnabled = data_get($notifiable, 'discord.enabled'); - $isSubscribedToEmailDeployments = data_get($notifiable, 'smtp_notifications.deployments'); - $isSubscribedToDiscordDeployments = data_get($notifiable, 'discord_notifications.deployments'); + $isSubscribedToEmailEvent = data_get($notifiable, 'smtp_notifications.stopped'); + $isSubscribedToDiscordEvent = data_get($notifiable, 'discord_notifications.stopped'); - if ($isEmailEnabled && $isSubscribedToEmailDeployments) { + if ($isEmailEnabled && $isSubscribedToEmailEvent) { $channels[] = EmailChannel::class; } - if ($isDiscordEnabled && $isSubscribedToDiscordDeployments) { + if ($isDiscordEnabled && $isSubscribedToDiscordEvent) { $channels[] = DiscordChannel::class; } return $channels; } public function toMail(): MailMessage { - // $mail = new MailMessage(); - // $pull_request_id = data_get($this->preview, 'pull_request_id', 0); - // $fqdn = $this->fqdn; - // if ($pull_request_id === 0) { - // $mail->subject("✅New version is deployed of {$this->application_name}"); - // } else { - // $fqdn = $this->preview->fqdn; - // $mail->subject("✅ Pull request #{$pull_request_id} of {$this->application_name} deployed successfully"); - // } - // $mail->view('emails.application-deployed-successfully', [ - // 'name' => $this->application_name, - // 'fqdn' => $fqdn, - // 'deployment_url' => $this->deployment_url, - // 'pull_request_id' => $pull_request_id, - // ]); - // return $mail; + $mail = new MailMessage(); + $fqdn = $this->fqdn; + $mail->subject("⛔ {$this->application_name} has been stopped"); + $mail->view('emails.application-stopped', [ + 'name' => $this->application_name, + 'fqdn' => $fqdn, + 'application_url' => $this->application_url, + ]); + return $mail; } public function toDiscord(): string diff --git a/app/Notifications/Notifications/Application/DeployedSuccessfullyNotification.php b/app/Notifications/Notifications/Application/DeployedSuccessfullyNotification.php index 0a44ec745..73c591607 100644 --- a/app/Notifications/Notifications/Application/DeployedSuccessfullyNotification.php +++ b/app/Notifications/Notifications/Application/DeployedSuccessfullyNotification.php @@ -45,13 +45,13 @@ class DeployedSuccessfullyNotification extends Notification implements ShouldQue $channels = []; $isEmailEnabled = data_get($notifiable, 'smtp.enabled'); $isDiscordEnabled = data_get($notifiable, 'discord.enabled'); - $isSubscribedToEmailDeployments = data_get($notifiable, 'smtp_notifications.deployments'); - $isSubscribedToDiscordDeployments = data_get($notifiable, 'discord_notifications.deployments'); + $isSubscribedToEmailEvent = data_get($notifiable, 'smtp_notifications.deployments'); + $isSubscribedToDiscordEvent = data_get($notifiable, 'discord_notifications.deployments'); - if ($isEmailEnabled && $isSubscribedToEmailDeployments) { + if ($isEmailEnabled && $isSubscribedToEmailEvent) { $channels[] = EmailChannel::class; } - if ($isDiscordEnabled && $isSubscribedToDiscordDeployments) { + if ($isDiscordEnabled && $isSubscribedToDiscordEvent) { $channels[] = DiscordChannel::class; } return $channels; diff --git a/app/Notifications/Notifications/Application/DeployedWithErrorNotification.php b/app/Notifications/Notifications/Application/DeployedWithErrorNotification.php index 1418b7e8e..80ed99965 100644 --- a/app/Notifications/Notifications/Application/DeployedWithErrorNotification.php +++ b/app/Notifications/Notifications/Application/DeployedWithErrorNotification.php @@ -46,13 +46,13 @@ class DeployedWithErrorNotification extends Notification implements ShouldQueue $channels = []; $isEmailEnabled = data_get($notifiable, 'smtp.enabled'); $isDiscordEnabled = data_get($notifiable, 'discord.enabled'); - $isSubscribedToEmailDeployments = data_get($notifiable, 'smtp_notifications.deployments'); - $isSubscribedToDiscordDeployments = data_get($notifiable, 'discord_notifications.deployments'); + $isSubscribedToEmailEvent = data_get($notifiable, 'smtp_notifications.deployments'); + $isSubscribedToDiscordEvent = data_get($notifiable, 'discord_notifications.deployments'); - if ($isEmailEnabled && $isSubscribedToEmailDeployments) { + if ($isEmailEnabled && $isSubscribedToEmailEvent) { $channels[] = EmailChannel::class; } - if ($isDiscordEnabled && $isSubscribedToDiscordDeployments) { + if ($isDiscordEnabled && $isSubscribedToDiscordEvent) { $channels[] = DiscordChannel::class; } return $channels; diff --git a/resources/views/emails/application-stopped.blade.php b/resources/views/emails/application-stopped.blade.php new file mode 100644 index 000000000..bce6e824f --- /dev/null +++ b/resources/views/emails/application-stopped.blade.php @@ -0,0 +1,2 @@ +{{ $name }} has been stopped.

+View Application URL

diff --git a/resources/views/livewire/notifications/discord-settings.blade.php b/resources/views/livewire/notifications/discord-settings.blade.php index 5785362d8..3c070f88e 100644 --- a/resources/views/livewire/notifications/discord-settings.blade.php +++ b/resources/views/livewire/notifications/discord-settings.blade.php @@ -26,8 +26,10 @@ @endif +
Applications
+ label="New Deployment" /> + @endif diff --git a/resources/views/livewire/notifications/email-settings.blade.php b/resources/views/livewire/notifications/email-settings.blade.php index f0e4d1ed5..12f7f33ff 100644 --- a/resources/views/livewire/notifications/email-settings.blade.php +++ b/resources/views/livewire/notifications/email-settings.blade.php @@ -53,8 +53,10 @@ @endif +
Applications
+ label="New Deployment" /> + @endif