feat: Docker cleanup success and failure notification files

This commit is contained in:
peaklabs-dev
2024-12-10 16:12:32 +01:00
parent 78d07f00f8
commit 0375db0d7c
3 changed files with 69 additions and 13 deletions

View File

@@ -0,0 +1,59 @@
<?php
namespace App\Notifications\Server;
use App\Models\Server;
use App\Notifications\CustomEmailNotification;
use App\Notifications\Dto\DiscordMessage;
use App\Notifications\Dto\SlackMessage;
use Illuminate\Notifications\Messages\MailMessage;
class DockerCleanupFailed extends CustomEmailNotification
{
public function __construct(public Server $server, public string $message)
{
$this->onQueue('high');
}
public function via(object $notifiable): array
{
return $notifiable->getEnabledChannels('docker_cleanup_failure');
}
public function toMail(): MailMessage
{
$mail = new MailMessage;
$mail->subject("Coolify: [ACTION REQUIRED] Docker cleanup job failed on {$this->server->name}");
$mail->view('emails.docker-cleanup-failed', [
'serverName' => $this->server->name,
'message' => $this->message,
]);
return $mail;
}
public function toDiscord(): DiscordMessage
{
return new DiscordMessage(
title: ':cross_mark: Coolify: [ACTION REQUIRED] Docker cleanup job failed on '.$this->server->name,
description: $this->message,
color: DiscordMessage::errorColor(),
);
}
public function toTelegram(): array
{
return [
'message' => "Coolify: [ACTION REQUIRED] Docker cleanup job failed on {$this->server->name}!\n\n{$this->message}",
];
}
public function toSlack(): SlackMessage
{
return new SlackMessage(
title: 'Coolify: [ACTION REQUIRED] Docker cleanup job failed',
description: "Docker cleanup job failed on '{$this->server->name}'!\n\n{$this->message}",
color: SlackMessage::errorColor()
);
}
}

View File

@@ -8,7 +8,7 @@ use App\Notifications\Dto\DiscordMessage;
use App\Notifications\Dto\SlackMessage; use App\Notifications\Dto\SlackMessage;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
class DockerCleanup extends CustomEmailNotification class DockerCleanupSuccess extends CustomEmailNotification
{ {
public function __construct(public Server $server, public string $message) public function __construct(public Server $server, public string $message)
{ {
@@ -17,25 +17,26 @@ class DockerCleanup extends CustomEmailNotification
public function via(object $notifiable): array public function via(object $notifiable): array
{ {
return $notifiable->getEnabledChannels('docker_cleanup'); return $notifiable->getEnabledChannels('docker_cleanup_success');
} }
public function toMail(): MailMessage public function toMail(): MailMessage
{ {
$mail = new MailMessage; $mail = new MailMessage;
$mail->subject("Coolify: Server ({$this->server->name}) docker cleanup job done!"); $mail->subject("Coolify: Docker cleanup job succeeded on {$this->server->name}");
$mail->view('emails.docker-cleanup', [ $mail->view('emails.docker-cleanup-success', [
'name' => $this->server->name, 'serverName' => $this->server->name,
'message' => $this->message, 'message' => $this->message,
]); ]);
return $mail; return $mail;
} }
public function toDiscord(): DiscordMessage public function toDiscord(): DiscordMessage
{ {
return new DiscordMessage( return new DiscordMessage(
title: ':white_check_mark: Server cleanup job done', title: ':white_check_mark: Coolify: Docker cleanup job succeeded on '.$this->server->name,
description: $this->message, description: $this->message,
color: DiscordMessage::successColor(), color: DiscordMessage::successColor(),
); );
@@ -44,15 +45,15 @@ class DockerCleanup extends CustomEmailNotification
public function toTelegram(): array public function toTelegram(): array
{ {
return [ return [
'message' => "Coolify: Server '{$this->server->name}' cleanup job done!\n\n{$this->message}", 'message' => "Coolify: Docker cleanup job succeeded on {$this->server->name}!\n\n{$this->message}",
]; ];
} }
public function toSlack(): SlackMessage public function toSlack(): SlackMessage
{ {
return new SlackMessage( return new SlackMessage(
title: 'Server cleanup job done', title: 'Coolify: Docker cleanup job succeeded',
description: "Server '{$this->server->name}' cleanup job done!\n\n{$this->message}", description: "Docker cleanup job succeeded on '{$this->server->name}'!\n\n{$this->message}",
color: SlackMessage::successColor() color: SlackMessage::successColor()
); );
} }

View File

@@ -1,4 +0,0 @@
<x-emails.layout>
<p>Docker cleanup job has completed successfully on {{ $serverName }} server.</p>
<p>Message: {{ $message }}</p>
</x-emails.layout>