2023-09-14 10:45:50 +00:00
< ? php
namespace App\Notifications\Server ;
use App\Models\Server ;
2023-10-09 09:00:18 +00:00
use App\Notifications\Channels\DiscordChannel ;
use App\Notifications\Channels\EmailChannel ;
use App\Notifications\Channels\TelegramChannel ;
2023-09-14 10:45:50 +00:00
use Illuminate\Bus\Queueable ;
use Illuminate\Contracts\Queue\ShouldQueue ;
use Illuminate\Notifications\Messages\MailMessage ;
use Illuminate\Notifications\Notification ;
class Unreachable extends Notification implements ShouldQueue
{
use Queueable ;
public $tries = 1 ;
public function __construct ( public Server $server )
{
}
public function via ( object $notifiable ) : array
{
2023-10-09 09:00:18 +00:00
$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 ;
2023-09-14 10:45:50 +00:00
}
public function toMail () : MailMessage
{
$mail = new MailMessage ();
2024-03-02 02:37:31 +00:00
$mail -> subject ( " Last Hour Cloud: Your server ( { $this -> server -> name } ) is unreachable. " );
2023-09-14 10:45:50 +00:00
$mail -> view ( 'emails.server-lost-connection' , [
'name' => $this -> server -> name ,
]);
return $mail ;
}
public function toDiscord () : string
{
2024-03-02 02:37:31 +00:00
$message = " Last Hour Cloud: 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. " ;
2023-09-14 10:45:50 +00:00
return $message ;
}
public function toTelegram () : array
{
return [
2024-03-02 02:37:31 +00:00
" message " => " Last Hour Cloud: 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. "
2023-09-14 10:45:50 +00:00
];
}
}