updated DiscordMessages for Server notifications

This commit is contained in:
Jakub Novák
2024-10-01 21:38:12 +02:00
parent 9e2f0fb894
commit f021a42890
6 changed files with 50 additions and 18 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Notifications\Server;
use App\Models\Server; use App\Models\Server;
use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\DiscordChannel;
use App\Notifications\Channels\TelegramChannel; use App\Notifications\Channels\TelegramChannel;
use App\Notifications\Dto\DiscordMessage;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Notification;
@@ -49,11 +50,13 @@ class DockerCleanup extends Notification implements ShouldQueue
// return $mail; // return $mail;
// } // }
public function toDiscord(): string public function toDiscord(): DiscordMessage
{ {
$message = "Coolify: Server '{$this->server->name}' cleanup job done!\n\n{$this->message}"; return new DiscordMessage(
title: "Coolify: Server '{$this->server->name}' cleanup job done!",
return $message; description: $this->message,
color: DiscordMessage::successColor(),
);
} }
public function toTelegram(): array public function toTelegram(): array

View File

@@ -6,6 +6,7 @@ use App\Models\Server;
use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\DiscordChannel;
use App\Notifications\Channels\EmailChannel; use App\Notifications\Channels\EmailChannel;
use App\Notifications\Channels\TelegramChannel; use App\Notifications\Channels\TelegramChannel;
use App\Notifications\Dto\DiscordMessage;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
@@ -50,9 +51,15 @@ class ForceDisabled extends Notification implements ShouldQueue
return $mail; return $mail;
} }
public function toDiscord(): string public function toDiscord(): DiscordMessage
{ {
$message = "Coolify: Server ({$this->server->name}) disabled because it is not paid!\n All automations and integrations are stopped.\nPlease update your subscription to enable the server again [here](https://app.coolify.io/subscriptions)."; $message = new DiscordMessage(
title: "Coolify: Server ({$this->server->name}) disabled because it is not paid!",
description: 'All automations and integrations are stopped.',
color: DiscordMessage::errorColor(),
);
$message->addField('Link', 'Please update your subscription to enable the server again [here](https://app.coolify.io/subscriptions).');
return $message; return $message;
} }

View File

@@ -6,6 +6,7 @@ use App\Models\Server;
use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\DiscordChannel;
use App\Notifications\Channels\EmailChannel; use App\Notifications\Channels\EmailChannel;
use App\Notifications\Channels\TelegramChannel; use App\Notifications\Channels\TelegramChannel;
use App\Notifications\Dto\DiscordMessage;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
@@ -50,11 +51,13 @@ class ForceEnabled extends Notification implements ShouldQueue
return $mail; return $mail;
} }
public function toDiscord(): string public function toDiscord(): DiscordMessage
{ {
$message = "Coolify: Server ({$this->server->name}) enabled again!"; return new DiscordMessage(
title: "Coolify: Server '{$this->server->name}' enabled again!",
return $message; description: 'All automations and integrations are started.',
color: DiscordMessage::successColor(),
);
} }
public function toTelegram(): array public function toTelegram(): array

View File

@@ -6,6 +6,7 @@ use App\Models\Server;
use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\DiscordChannel;
use App\Notifications\Channels\EmailChannel; use App\Notifications\Channels\EmailChannel;
use App\Notifications\Channels\TelegramChannel; use App\Notifications\Channels\TelegramChannel;
use App\Notifications\Dto\DiscordMessage;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
@@ -52,9 +53,17 @@ class HighDiskUsage extends Notification implements ShouldQueue
return $mail; return $mail;
} }
public function toDiscord(): string public function toDiscord(): DiscordMessage
{ {
$message = "Coolify: Server '{$this->server->name}' high disk usage detected!\nDisk usage: {$this->disk_usage}%. Threshold: {$this->docker_cleanup_threshold}%.\nPlease cleanup your disk to prevent data-loss.\nHere are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup."; $message = new DiscordMessage(
title: "Coolify: Server '{$this->server->name}' high disk usage detected!",
description: 'Please cleanup your disk to prevent data-loss.',
color: DiscordMessage::errorColor(),
);
$message->addField('Disk usage', "{$this->disk_usage}%");
$message->addField('Threshold', "{$this->docker_cleanup_threshold}%");
$message->addField('Link', 'Here are some tips: https://coolify.io/docs/knowledge-base/server/automated-cleanup.');
return $message; return $message;
} }

View File

@@ -8,6 +8,7 @@ use App\Models\Server;
use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\DiscordChannel;
use App\Notifications\Channels\EmailChannel; use App\Notifications\Channels\EmailChannel;
use App\Notifications\Channels\TelegramChannel; use App\Notifications\Channels\TelegramChannel;
use App\Notifications\Dto\DiscordMessage;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
@@ -72,11 +73,13 @@ class Revived extends Notification implements ShouldQueue
return $mail; return $mail;
} }
public function toDiscord(): string public function toDiscord(): DiscordMessage
{ {
$message = "Coolify: Server '{$this->server->name}' revived. All automations & integrations are turned on again!"; return new DiscordMessage(
title: "Coolify: Server '{$this->server->name}' revived.",
return $message; description: 'All automations & integrations are turned on again!',
color: DiscordMessage::successColor(),
);
} }
public function toTelegram(): array public function toTelegram(): array

View File

@@ -6,6 +6,7 @@ use App\Models\Server;
use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\DiscordChannel;
use App\Notifications\Channels\EmailChannel; use App\Notifications\Channels\EmailChannel;
use App\Notifications\Channels\TelegramChannel; use App\Notifications\Channels\TelegramChannel;
use App\Notifications\Dto\DiscordMessage;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\MailMessage;
@@ -63,9 +64,15 @@ class Unreachable extends Notification implements ShouldQueue
return $mail; return $mail;
} }
public function toDiscord(): string public function toDiscord(): DiscordMessage
{ {
$message = "Coolify: Your server '{$this->server->name}' is unreachable. All automations & integrations are turned off! Please check your server! IMPORTANT: We automatically try to revive your server and turn on all automations & integrations."; $message = new DiscordMessage(
title: "Coolify: Your server '{$this->server->name}' is unreachable.",
description: 'All automations & integrations are turned off! Please check your server!',
color: DiscordMessage::errorColor(),
);
$message->addField('IMPORTANT', 'We automatically try to revive your server and turn on all automations & integrations.');
return $message; return $message;
} }