/
dimamir
/
coolify
Обзор
Документация
Войти
/
dimamir
/
coolify
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
app/Notifications/Server/Unreachable.php
79 строк
2 KB
Andras Bacsai
fix: Email should be retried with backoff
26 ноя 2024, 12:19
26 ноя 2024, 12:19
dabda4e
Код
Авторство
О чём код?
<?php namespace App\Notifications\Server; use App\Models\Server; use App\Notifications\Channels\DiscordChannel; use App\Notifications\Channels\EmailChannel; use App\Notifications\Channels\TelegramChannel; use App\Notifications\CustomEmailNotification; use App\Notifications\Dto\DiscordMessage; use Illuminate\Notifications\Messages\MailMessage; class Unreachable extends CustomEmailNotification { protected bool $isRateLimited = false; public function __construct(public Server $server) { $this->onQueue('high'); $this->isRateLimited = isEmailRateLimited( limiterKey: 'server-unreachable:'.$this->server->id, ); } public function via(object $notifiable): array { if ($this->isRateLimited) { return []; } $channels = []; $isEmailEnabled = isEmailEnabled($notifiable); $isDiscordEnabled = data_get($notifiable, 'discord_enabled'); $isTelegramEnabled = data_get($notifiable, 'telegram_enabled'); if ($isDiscordEnabled) { $channels[] = DiscordChannel::class; } if ($isEmailEnabled) { $channels[] = EmailChannel::class; } if ($isTelegramEnabled) { $channels[] = TelegramChannel::class; } return $channels; } public function toMail(): ?MailMessage { $mail = new MailMessage; $mail->subject("Coolify: Your server ({$this->server->name}) is unreachable."); $mail->view('emails.server-lost-connection', [ 'name' => $this->server->name, ]); return $mail; } public function toDiscord(): ?DiscordMessage { $message = new DiscordMessage( title: ':cross_mark: Server unreachable', description: "Your server '{$this->server->name}' is unreachable.", color: DiscordMessage::errorColor(), ); $message->addField('IMPORTANT', 'We automatically try to revive your server and turn on all automations & integrations.'); return $message; } public function toTelegram(): ?array { return [ '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.", ]; } }