@@ -30,12 +30,12 @@ class DeploymentFailed extends CustomEmailNotification
|
||||
|
||||
public ?string $fqdn = null;
|
||||
|
||||
public function __construct(Application $application, string $deployment_uuid, ?ApplicationPreview $applicationPreview = null)
|
||||
public function __construct(Application $application, string $deployment_uuid, ?ApplicationPreview $preview = null)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
$this->application = $application;
|
||||
$this->deployment_uuid = $deployment_uuid;
|
||||
$this->preview = $applicationPreview;
|
||||
$this->preview = $preview;
|
||||
$this->application_name = data_get($application, 'name');
|
||||
$this->project_uuid = data_get($application, 'environment.project.uuid');
|
||||
$this->environment_uuid = data_get($application, 'environment.uuid');
|
||||
@@ -54,28 +54,28 @@ class DeploymentFailed extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mail = new MailMessage;
|
||||
$pull_request_id = data_get($this->preview, 'pull_request_id', 0);
|
||||
$fqdn = $this->fqdn;
|
||||
if ($pull_request_id === 0) {
|
||||
$mailMessage->subject('Coolify: Deployment failed of '.$this->application_name.'.');
|
||||
$mail->subject('Coolify: Deployment failed of '.$this->application_name.'.');
|
||||
} else {
|
||||
$fqdn = $this->preview->fqdn;
|
||||
$mailMessage->subject('Coolify: Deployment failed of pull request #'.$this->preview->pull_request_id.' of '.$this->application_name.'.');
|
||||
$mail->subject('Coolify: Deployment failed of pull request #'.$this->preview->pull_request_id.' of '.$this->application_name.'.');
|
||||
}
|
||||
$mailMessage->view('emails.application-deployment-failed', [
|
||||
$mail->view('emails.application-deployment-failed', [
|
||||
'name' => $this->application_name,
|
||||
'fqdn' => $fqdn,
|
||||
'deployment_url' => $this->deployment_url,
|
||||
'pull_request_id' => data_get($this->preview, 'pull_request_id', 0),
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Deployment failed',
|
||||
description: 'Pull request: '.$this->preview->pull_request_id,
|
||||
@@ -92,16 +92,22 @@ class DeploymentFailed extends CustomEmailNotification
|
||||
$message->addField('Domain', $this->fqdn, true);
|
||||
}
|
||||
} else {
|
||||
$description = $this->fqdn ? '[Open application]('.$this->fqdn.')' : '';
|
||||
if ($this->fqdn) {
|
||||
$description = '[Open application]('.$this->fqdn.')';
|
||||
} else {
|
||||
$description = '';
|
||||
}
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Deployment failed',
|
||||
description: $description,
|
||||
color: DiscordMessage::errorColor(),
|
||||
isCritical: true,
|
||||
);
|
||||
|
||||
$message->addField('Project', data_get($this->application, 'environment.project.name'), true);
|
||||
$message->addField('Environment', $this->environment_name, true);
|
||||
$message->addField('Name', $this->application_name, true);
|
||||
|
||||
$message->addField('Deployment Logs', '[Link]('.$this->deployment_url.')');
|
||||
}
|
||||
|
||||
@@ -110,7 +116,7 @@ class DeploymentFailed extends CustomEmailNotification
|
||||
|
||||
public function toTelegram(): array
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$message = 'Coolify: Pull request #'.$this->preview->pull_request_id.' of '.$this->application_name.' ('.$this->preview->fqdn.') deployment failed: ';
|
||||
} else {
|
||||
$message = 'Coolify: Deployment failed of '.$this->application_name.' ('.$this->fqdn.'): ';
|
||||
@@ -130,7 +136,7 @@ class DeploymentFailed extends CustomEmailNotification
|
||||
|
||||
public function toPushover(): PushoverMessage
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$title = "Pull request #{$this->preview->pull_request_id} deployment failed";
|
||||
$message = "Pull request deployment failed for {$this->application_name}";
|
||||
} else {
|
||||
@@ -155,7 +161,7 @@ class DeploymentFailed extends CustomEmailNotification
|
||||
|
||||
public function toSlack(): SlackMessage
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$title = "Pull request #{$this->preview->pull_request_id} deployment failed";
|
||||
$description = "Pull request deployment failed for {$this->application_name}";
|
||||
if ($this->preview->fqdn) {
|
||||
|
||||
@@ -30,12 +30,12 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
|
||||
public ?string $fqdn;
|
||||
|
||||
public function __construct(Application $application, string $deployment_uuid, ?ApplicationPreview $applicationPreview = null)
|
||||
public function __construct(Application $application, string $deployment_uuid, ?ApplicationPreview $preview = null)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
$this->application = $application;
|
||||
$this->deployment_uuid = $deployment_uuid;
|
||||
$this->preview = $applicationPreview;
|
||||
$this->preview = $preview;
|
||||
$this->application_name = data_get($application, 'name');
|
||||
$this->project_uuid = data_get($application, 'environment.project.uuid');
|
||||
$this->environment_uuid = data_get($application, 'environment.uuid');
|
||||
@@ -54,28 +54,28 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mail = new MailMessage;
|
||||
$pull_request_id = data_get($this->preview, 'pull_request_id', 0);
|
||||
$fqdn = $this->fqdn;
|
||||
if ($pull_request_id === 0) {
|
||||
$mailMessage->subject("Coolify: New version is deployed of {$this->application_name}");
|
||||
$mail->subject("Coolify: New version is deployed of {$this->application_name}");
|
||||
} else {
|
||||
$fqdn = $this->preview->fqdn;
|
||||
$mailMessage->subject("Coolify: Pull request #{$pull_request_id} of {$this->application_name} deployed successfully");
|
||||
$mail->subject("Coolify: Pull request #{$pull_request_id} of {$this->application_name} deployed successfully");
|
||||
}
|
||||
$mailMessage->view('emails.application-deployment-success', [
|
||||
$mail->view('emails.application-deployment-success', [
|
||||
'name' => $this->application_name,
|
||||
'fqdn' => $fqdn,
|
||||
'deployment_url' => $this->deployment_url,
|
||||
'pull_request_id' => $pull_request_id,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$message = new DiscordMessage(
|
||||
title: ':white_check_mark: Preview deployment successful',
|
||||
description: 'Pull request: '.$this->preview->pull_request_id,
|
||||
@@ -91,7 +91,11 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
$message->addField('Name', $this->application_name, true);
|
||||
$message->addField('Deployment logs', '[Link]('.$this->deployment_url.')');
|
||||
} else {
|
||||
$description = $this->fqdn ? '[Open application]('.$this->fqdn.')' : '';
|
||||
if ($this->fqdn) {
|
||||
$description = '[Open application]('.$this->fqdn.')';
|
||||
} else {
|
||||
$description = '';
|
||||
}
|
||||
$message = new DiscordMessage(
|
||||
title: ':white_check_mark: New version successfully deployed',
|
||||
description: $description,
|
||||
@@ -100,6 +104,7 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
$message->addField('Project', data_get($this->application, 'environment.project.name'), true);
|
||||
$message->addField('Environment', $this->environment_name, true);
|
||||
$message->addField('Name', $this->application_name, true);
|
||||
|
||||
$message->addField('Deployment logs', '[Link]('.$this->deployment_url.')');
|
||||
}
|
||||
|
||||
@@ -108,7 +113,7 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
|
||||
public function toTelegram(): array
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$message = 'Coolify: New PR'.$this->preview->pull_request_id.' version successfully deployed of '.$this->application_name.'';
|
||||
if ($this->preview->fqdn) {
|
||||
$buttons[] = [
|
||||
@@ -140,7 +145,7 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
|
||||
public function toPushover(): PushoverMessage
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$title = "Pull request #{$this->preview->pull_request_id} successfully deployed";
|
||||
$message = 'New PR'.$this->preview->pull_request_id.' version successfully deployed of '.$this->application_name.'';
|
||||
if ($this->preview->fqdn) {
|
||||
@@ -176,7 +181,7 @@ class DeploymentSuccess extends CustomEmailNotification
|
||||
|
||||
public function toSlack(): SlackMessage
|
||||
{
|
||||
if ($this->preview instanceof ApplicationPreview) {
|
||||
if ($this->preview) {
|
||||
$title = "Pull request #{$this->preview->pull_request_id} successfully deployed";
|
||||
$description = "New version successfully deployed for {$this->application_name}";
|
||||
if ($this->preview->fqdn) {
|
||||
|
||||
@@ -23,18 +23,18 @@ class StatusChanged extends CustomEmailNotification
|
||||
|
||||
public ?string $fqdn;
|
||||
|
||||
public function __construct(public Application $application)
|
||||
public function __construct(public Application $resource)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
$this->resource_name = data_get($application, 'name');
|
||||
$this->project_uuid = data_get($application, 'environment.project.uuid');
|
||||
$this->environment_uuid = data_get($application, 'environment.uuid');
|
||||
$this->environment_name = data_get($application, 'environment.name');
|
||||
$this->fqdn = data_get($application, 'fqdn', null);
|
||||
$this->resource_name = data_get($resource, 'name');
|
||||
$this->project_uuid = data_get($resource, 'environment.project.uuid');
|
||||
$this->environment_uuid = data_get($resource, 'environment.uuid');
|
||||
$this->environment_name = data_get($resource, 'environment.name');
|
||||
$this->fqdn = data_get($resource, 'fqdn', null);
|
||||
if (str($this->fqdn)->explode(',')->count() > 1) {
|
||||
$this->fqdn = str($this->fqdn)->explode(',')->first();
|
||||
}
|
||||
$this->resource_url = base_url()."/project/{$this->project_uuid}/environments/{$this->environment_uuid}/application/{$this->application->uuid}";
|
||||
$this->resource_url = base_url()."/project/{$this->project_uuid}/environments/{$this->environment_uuid}/application/{$this->resource->uuid}";
|
||||
}
|
||||
|
||||
public function via(object $notifiable): array
|
||||
@@ -44,16 +44,16 @@ class StatusChanged extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mail = new MailMessage;
|
||||
$fqdn = $this->fqdn;
|
||||
$mailMessage->subject("Coolify: {$this->resource_name} has been stopped");
|
||||
$mailMessage->view('emails.application-status-changes', [
|
||||
$mail->subject("Coolify: {$this->resource_name} has been stopped");
|
||||
$mail->view('emails.application-status-changes', [
|
||||
'name' => $this->resource_name,
|
||||
'fqdn' => $fqdn,
|
||||
'resource_url' => $this->resource_url,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
@@ -103,7 +103,7 @@ class StatusChanged extends CustomEmailNotification
|
||||
$title = 'Application stopped';
|
||||
$description = "{$this->resource_name} has been stopped";
|
||||
|
||||
$description .= "\n\n**Project:** ".data_get($this->application, 'environment.project.name');
|
||||
$description .= "\n\n**Project:** ".data_get($this->resource, 'environment.project.name');
|
||||
$description .= "\n**Environment:** {$this->environment_name}";
|
||||
$description .= "\n**Application URL:** {$this->resource_url}";
|
||||
|
||||
|
||||
@@ -10,11 +10,11 @@ class DiscordChannel
|
||||
/**
|
||||
* Send the given notification.
|
||||
*/
|
||||
public function send(SendsDiscord $sendsDiscord, Notification $notification): void
|
||||
public function send(SendsDiscord $notifiable, Notification $notification): void
|
||||
{
|
||||
$message = $notification->toDiscord();
|
||||
|
||||
$discordSettings = $sendsDiscord->discordNotificationSettings;
|
||||
$discordSettings = $notifiable->discordNotificationSettings;
|
||||
|
||||
if (! $discordSettings || ! $discordSettings->isEnabled() || ! $discordSettings->discord_webhook_url) {
|
||||
return;
|
||||
|
||||
@@ -9,16 +9,16 @@ use Illuminate\Support\Facades\Mail;
|
||||
|
||||
class EmailChannel
|
||||
{
|
||||
public function send(SendsEmail $sendsEmail, Notification $notification): void
|
||||
public function send(SendsEmail $notifiable, Notification $notification): void
|
||||
{
|
||||
try {
|
||||
$this->bootConfigs($sendsEmail);
|
||||
$recipients = $sendsEmail->getRecipients($notification);
|
||||
$this->bootConfigs($notifiable);
|
||||
$recipients = $notifiable->getRecipients($notification);
|
||||
if (count($recipients) === 0) {
|
||||
throw new Exception('No email recipients found');
|
||||
}
|
||||
|
||||
$mailMessage = $notification->toMail($sendsEmail);
|
||||
$mailMessage = $notification->toMail($notifiable);
|
||||
Mail::send(
|
||||
[],
|
||||
[],
|
||||
|
||||
@@ -7,10 +7,10 @@ use Illuminate\Notifications\Notification;
|
||||
|
||||
class PushoverChannel
|
||||
{
|
||||
public function send(SendsPushover $sendsPushover, Notification $notification): void
|
||||
public function send(SendsPushover $notifiable, Notification $notification): void
|
||||
{
|
||||
$message = $notification->toPushover();
|
||||
$pushoverSettings = $sendsPushover->pushoverNotificationSettings;
|
||||
$pushoverSettings = $notifiable->pushoverNotificationSettings;
|
||||
|
||||
if (! $pushoverSettings || ! $pushoverSettings->isEnabled() || ! $pushoverSettings->pushover_user_key || ! $pushoverSettings->pushover_api_token) {
|
||||
return;
|
||||
|
||||
@@ -10,10 +10,10 @@ class SlackChannel
|
||||
/**
|
||||
* Send the given notification.
|
||||
*/
|
||||
public function send(SendsSlack $sendsSlack, Notification $notification): void
|
||||
public function send(SendsSlack $notifiable, Notification $notification): void
|
||||
{
|
||||
$message = $notification->toSlack();
|
||||
$slackSettings = $sendsSlack->slackNotificationSettings;
|
||||
$slackSettings = $notifiable->slackNotificationSettings;
|
||||
|
||||
if (! $slackSettings || ! $slackSettings->isEnabled() || ! $slackSettings->slack_webhook_url) {
|
||||
return;
|
||||
|
||||
@@ -3,20 +3,6 @@
|
||||
namespace App\Notifications\Channels;
|
||||
|
||||
use App\Jobs\SendMessageToTelegramJob;
|
||||
use App\Notifications\Application\DeploymentFailed;
|
||||
use App\Notifications\Application\DeploymentSuccess;
|
||||
use App\Notifications\Application\StatusChanged;
|
||||
use App\Notifications\Container\ContainerRestarted;
|
||||
use App\Notifications\Container\ContainerStopped;
|
||||
use App\Notifications\Database\BackupFailed;
|
||||
use App\Notifications\Database\BackupSuccess;
|
||||
use App\Notifications\ScheduledTask\TaskFailed;
|
||||
use App\Notifications\ScheduledTask\TaskSuccess;
|
||||
use App\Notifications\Server\DockerCleanupFailed;
|
||||
use App\Notifications\Server\DockerCleanupSuccess;
|
||||
use App\Notifications\Server\HighDiskUsage;
|
||||
use App\Notifications\Server\Reachable;
|
||||
use App\Notifications\Server\Unreachable;
|
||||
|
||||
class TelegramChannel
|
||||
{
|
||||
@@ -31,23 +17,23 @@ class TelegramChannel
|
||||
$chatId = $settings->telegram_chat_id;
|
||||
|
||||
$threadId = match (get_class($notification)) {
|
||||
DeploymentSuccess::class => $settings->telegram_notifications_deployment_success_thread_id,
|
||||
DeploymentFailed::class => $settings->telegram_notifications_deployment_failure_thread_id,
|
||||
StatusChanged::class,
|
||||
ContainerRestarted::class,
|
||||
ContainerStopped::class => $settings->telegram_notifications_status_change_thread_id,
|
||||
\App\Notifications\Application\DeploymentSuccess::class => $settings->telegram_notifications_deployment_success_thread_id,
|
||||
\App\Notifications\Application\DeploymentFailed::class => $settings->telegram_notifications_deployment_failure_thread_id,
|
||||
\App\Notifications\Application\StatusChanged::class,
|
||||
\App\Notifications\Container\ContainerRestarted::class,
|
||||
\App\Notifications\Container\ContainerStopped::class => $settings->telegram_notifications_status_change_thread_id,
|
||||
|
||||
BackupSuccess::class => $settings->telegram_notifications_backup_success_thread_id,
|
||||
BackupFailed::class => $settings->telegram_notifications_backup_failure_thread_id,
|
||||
\App\Notifications\Database\BackupSuccess::class => $settings->telegram_notifications_backup_success_thread_id,
|
||||
\App\Notifications\Database\BackupFailed::class => $settings->telegram_notifications_backup_failure_thread_id,
|
||||
|
||||
TaskSuccess::class => $settings->telegram_notifications_scheduled_task_success_thread_id,
|
||||
TaskFailed::class => $settings->telegram_notifications_scheduled_task_failure_thread_id,
|
||||
\App\Notifications\ScheduledTask\TaskSuccess::class => $settings->telegram_notifications_scheduled_task_success_thread_id,
|
||||
\App\Notifications\ScheduledTask\TaskFailed::class => $settings->telegram_notifications_scheduled_task_failure_thread_id,
|
||||
|
||||
DockerCleanupSuccess::class => $settings->telegram_notifications_docker_cleanup_success_thread_id,
|
||||
DockerCleanupFailed::class => $settings->telegram_notifications_docker_cleanup_failure_thread_id,
|
||||
HighDiskUsage::class => $settings->telegram_notifications_server_disk_usage_thread_id,
|
||||
Unreachable::class => $settings->telegram_notifications_server_unreachable_thread_id,
|
||||
Reachable::class => $settings->telegram_notifications_server_reachable_thread_id,
|
||||
\App\Notifications\Server\DockerCleanupSuccess::class => $settings->telegram_notifications_docker_cleanup_success_thread_id,
|
||||
\App\Notifications\Server\DockerCleanupFailed::class => $settings->telegram_notifications_docker_cleanup_failure_thread_id,
|
||||
\App\Notifications\Server\HighDiskUsage::class => $settings->telegram_notifications_server_disk_usage_thread_id,
|
||||
\App\Notifications\Server\Unreachable::class => $settings->telegram_notifications_server_unreachable_thread_id,
|
||||
\App\Notifications\Server\Reachable::class => $settings->telegram_notifications_server_reachable_thread_id,
|
||||
|
||||
default => null,
|
||||
};
|
||||
|
||||
@@ -10,18 +10,18 @@ use Illuminate\Support\Facades\Mail;
|
||||
|
||||
class TransactionalEmailChannel
|
||||
{
|
||||
public function send(User $user, Notification $notification): void
|
||||
public function send(User $notifiable, Notification $notification): void
|
||||
{
|
||||
$settings = instanceSettings();
|
||||
if (! data_get($settings, 'smtp_enabled') && ! data_get($settings, 'resend_enabled')) {
|
||||
return;
|
||||
}
|
||||
$email = $user->email;
|
||||
$email = $notifiable->email;
|
||||
if (! $email) {
|
||||
return;
|
||||
}
|
||||
$this->bootConfigs();
|
||||
$mailMessage = $notification->toMail($user);
|
||||
$mailMessage = $notification->toMail($notifiable);
|
||||
Mail::send(
|
||||
[],
|
||||
[],
|
||||
|
||||
@@ -23,30 +23,30 @@ class ContainerRestarted extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}");
|
||||
$mailMessage->view('emails.container-restarted', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: A resource ({$this->name}) has been restarted automatically on {$this->server->name}");
|
||||
$mail->view('emails.container-restarted', [
|
||||
'containerName' => $this->name,
|
||||
'serverName' => $this->server->name,
|
||||
'url' => $this->url,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':warning: Resource restarted',
|
||||
description: "{$this->name} has been restarted automatically on {$this->server->name}.",
|
||||
color: DiscordMessage::infoColor(),
|
||||
);
|
||||
|
||||
if ($this->url) {
|
||||
$discordMessage->addField('Resource', '[Link]('.$this->url.')');
|
||||
$message->addField('Resource', '[Link]('.$this->url.')');
|
||||
}
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -23,30 +23,30 @@ class ContainerStopped extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: A resource has been stopped unexpectedly on {$this->server->name}");
|
||||
$mailMessage->view('emails.container-stopped', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: A resource has been stopped unexpectedly on {$this->server->name}");
|
||||
$mail->view('emails.container-stopped', [
|
||||
'containerName' => $this->name,
|
||||
'serverName' => $this->server->name,
|
||||
'url' => $this->url,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Resource stopped',
|
||||
description: "{$this->name} has been stopped unexpectedly on {$this->server->name}.",
|
||||
color: DiscordMessage::errorColor(),
|
||||
);
|
||||
|
||||
if ($this->url) {
|
||||
$discordMessage->addField('Resource', '[Link]('.$this->url.')');
|
||||
$message->addField('Resource', '[Link]('.$this->url.')');
|
||||
}
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -15,11 +15,11 @@ class BackupFailed extends CustomEmailNotification
|
||||
|
||||
public string $frequency;
|
||||
|
||||
public function __construct(ScheduledDatabaseBackup $scheduledDatabaseBackup, public $database, public $output, public $database_name)
|
||||
public function __construct(ScheduledDatabaseBackup $backup, public $database, public $output, public $database_name)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
$this->name = $database->name;
|
||||
$this->frequency = $scheduledDatabaseBackup->frequency;
|
||||
$this->frequency = $backup->frequency;
|
||||
}
|
||||
|
||||
public function via(object $notifiable): array
|
||||
@@ -29,31 +29,31 @@ class BackupFailed extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: [ACTION REQUIRED] Database Backup FAILED for {$this->database->name}");
|
||||
$mailMessage->view('emails.backup-failed', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: [ACTION REQUIRED] Database Backup FAILED for {$this->database->name}");
|
||||
$mail->view('emails.backup-failed', [
|
||||
'name' => $this->name,
|
||||
'database_name' => $this->database_name,
|
||||
'frequency' => $this->frequency,
|
||||
'output' => $this->output,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Database backup failed',
|
||||
description: "Database backup for {$this->name} (db:{$this->database_name}) has FAILED.",
|
||||
color: DiscordMessage::errorColor(),
|
||||
isCritical: true,
|
||||
);
|
||||
|
||||
$discordMessage->addField('Frequency', $this->frequency, true);
|
||||
$discordMessage->addField('Output', $this->output);
|
||||
$message->addField('Frequency', $this->frequency, true);
|
||||
$message->addField('Output', $this->output);
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -15,12 +15,12 @@ class BackupSuccess extends CustomEmailNotification
|
||||
|
||||
public string $frequency;
|
||||
|
||||
public function __construct(ScheduledDatabaseBackup $scheduledDatabaseBackup, public $database, public $database_name)
|
||||
public function __construct(ScheduledDatabaseBackup $backup, public $database, public $database_name)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
|
||||
$this->name = $database->name;
|
||||
$this->frequency = $scheduledDatabaseBackup->frequency;
|
||||
$this->frequency = $backup->frequency;
|
||||
}
|
||||
|
||||
public function via(object $notifiable): array
|
||||
@@ -30,28 +30,28 @@ class BackupSuccess extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Backup successfully done for {$this->database->name}");
|
||||
$mailMessage->view('emails.backup-success', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Backup successfully done for {$this->database->name}");
|
||||
$mail->view('emails.backup-success', [
|
||||
'name' => $this->name,
|
||||
'database_name' => $this->database_name,
|
||||
'frequency' => $this->frequency,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':white_check_mark: Database backup successful',
|
||||
description: "Database backup for {$this->name} (db:{$this->database_name}) was successful.",
|
||||
color: DiscordMessage::successColor(),
|
||||
);
|
||||
|
||||
$discordMessage->addField('Frequency', $this->frequency, true);
|
||||
$message->addField('Frequency', $this->frequency, true);
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -13,13 +13,13 @@ class TaskFailed extends CustomEmailNotification
|
||||
{
|
||||
public ?string $url = null;
|
||||
|
||||
public function __construct(public ScheduledTask $scheduledTask, public string $output)
|
||||
public function __construct(public ScheduledTask $task, public string $output)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
if ($scheduledTask->application) {
|
||||
$this->url = $scheduledTask->application->taskLink($scheduledTask->uuid);
|
||||
} elseif ($scheduledTask->service) {
|
||||
$this->url = $scheduledTask->service->taskLink($scheduledTask->uuid);
|
||||
if ($task->application) {
|
||||
$this->url = $task->application->taskLink($task->uuid);
|
||||
} elseif ($task->service) {
|
||||
$this->url = $task->service->taskLink($task->uuid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,39 +30,39 @@ class TaskFailed extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: [ACTION REQUIRED] Scheduled task ({$this->scheduledTask->name}) failed.");
|
||||
$mailMessage->view('emails.scheduled-task-failed', [
|
||||
'task' => $this->scheduledTask,
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: [ACTION REQUIRED] Scheduled task ({$this->task->name}) failed.");
|
||||
$mail->view('emails.scheduled-task-failed', [
|
||||
'task' => $this->task,
|
||||
'url' => $this->url,
|
||||
'output' => $this->output,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Scheduled task failed',
|
||||
description: "Scheduled task ({$this->scheduledTask->name}) failed.",
|
||||
description: "Scheduled task ({$this->task->name}) failed.",
|
||||
color: DiscordMessage::errorColor(),
|
||||
);
|
||||
|
||||
if ($this->url) {
|
||||
$discordMessage->addField('Scheduled task', '[Link]('.$this->url.')');
|
||||
$message->addField('Scheduled task', '[Link]('.$this->url.')');
|
||||
}
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
{
|
||||
$message = "Coolify: Scheduled task ({$this->scheduledTask->name}) failed with output: {$this->output}";
|
||||
$message = "Coolify: Scheduled task ({$this->task->name}) failed with output: {$this->output}";
|
||||
if ($this->url) {
|
||||
$buttons[] = [
|
||||
'text' => 'Open task in Coolify',
|
||||
'url' => $this->url,
|
||||
'url' => (string) $this->url,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -73,9 +73,9 @@ class TaskFailed extends CustomEmailNotification
|
||||
|
||||
public function toPushover(): PushoverMessage
|
||||
{
|
||||
$message = "Scheduled task ({$this->scheduledTask->name}) failed<br/>";
|
||||
$message = "Scheduled task ({$this->task->name}) failed<br/>";
|
||||
|
||||
if ($this->output !== '' && $this->output !== '0') {
|
||||
if ($this->output) {
|
||||
$message .= "<br/><b>Error Output:</b>{$this->output}";
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ class TaskFailed extends CustomEmailNotification
|
||||
if ($this->url) {
|
||||
$buttons[] = [
|
||||
'text' => 'Open task in Coolify',
|
||||
'url' => $this->url,
|
||||
'url' => (string) $this->url,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -98,9 +98,9 @@ class TaskFailed extends CustomEmailNotification
|
||||
public function toSlack(): SlackMessage
|
||||
{
|
||||
$title = 'Scheduled task failed';
|
||||
$description = "Scheduled task ({$this->scheduledTask->name}) failed.";
|
||||
$description = "Scheduled task ({$this->task->name}) failed.";
|
||||
|
||||
if ($this->output !== '' && $this->output !== '0') {
|
||||
if ($this->output) {
|
||||
$description .= "\n\n**Error Output:**\n{$this->output}";
|
||||
}
|
||||
|
||||
|
||||
@@ -13,13 +13,13 @@ class TaskSuccess extends CustomEmailNotification
|
||||
{
|
||||
public ?string $url = null;
|
||||
|
||||
public function __construct(public ScheduledTask $scheduledTask, public string $output)
|
||||
public function __construct(public ScheduledTask $task, public string $output)
|
||||
{
|
||||
$this->onQueue('high');
|
||||
if ($scheduledTask->application) {
|
||||
$this->url = $scheduledTask->application->taskLink($scheduledTask->uuid);
|
||||
} elseif ($scheduledTask->service) {
|
||||
$this->url = $scheduledTask->service->taskLink($scheduledTask->uuid);
|
||||
if ($task->application) {
|
||||
$this->url = $task->application->taskLink($task->uuid);
|
||||
} elseif ($task->service) {
|
||||
$this->url = $task->service->taskLink($task->uuid);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,39 +30,39 @@ class TaskSuccess extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Scheduled task ({$this->scheduledTask->name}) succeeded.");
|
||||
$mailMessage->view('emails.scheduled-task-success', [
|
||||
'task' => $this->scheduledTask,
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Scheduled task ({$this->task->name}) succeeded.");
|
||||
$mail->view('emails.scheduled-task-success', [
|
||||
'task' => $this->task,
|
||||
'url' => $this->url,
|
||||
'output' => $this->output,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':white_check_mark: Scheduled task succeeded',
|
||||
description: "Scheduled task ({$this->scheduledTask->name}) succeeded.",
|
||||
description: "Scheduled task ({$this->task->name}) succeeded.",
|
||||
color: DiscordMessage::successColor(),
|
||||
);
|
||||
|
||||
if ($this->url) {
|
||||
$discordMessage->addField('Scheduled task', '[Link]('.$this->url.')');
|
||||
$message->addField('Scheduled task', '[Link]('.$this->url.')');
|
||||
}
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
{
|
||||
$message = "Coolify: Scheduled task ({$this->scheduledTask->name}) succeeded.";
|
||||
$message = "Coolify: Scheduled task ({$this->task->name}) succeeded.";
|
||||
if ($this->url) {
|
||||
$buttons[] = [
|
||||
'text' => 'Open task in Coolify',
|
||||
'url' => $this->url,
|
||||
'url' => (string) $this->url,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -73,12 +73,12 @@ class TaskSuccess extends CustomEmailNotification
|
||||
|
||||
public function toPushover(): PushoverMessage
|
||||
{
|
||||
$message = "Coolify: Scheduled task ({$this->scheduledTask->name}) succeeded.";
|
||||
$message = "Coolify: Scheduled task ({$this->task->name}) succeeded.";
|
||||
$buttons = [];
|
||||
if ($this->url) {
|
||||
$buttons[] = [
|
||||
'text' => 'Open task in Coolify',
|
||||
'url' => $this->url,
|
||||
'url' => (string) $this->url,
|
||||
];
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ class TaskSuccess extends CustomEmailNotification
|
||||
public function toSlack(): SlackMessage
|
||||
{
|
||||
$title = 'Scheduled task succeeded';
|
||||
$description = "Scheduled task ({$this->scheduledTask->name}) succeeded.";
|
||||
$description = "Scheduled task ({$this->task->name}) succeeded.";
|
||||
|
||||
if ($this->url) {
|
||||
$description .= "\n\n**Task URL:** {$this->url}";
|
||||
|
||||
@@ -23,14 +23,14 @@ class DockerCleanupFailed extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: [ACTION REQUIRED] Docker cleanup job failed on {$this->server->name}");
|
||||
$mailMessage->view('emails.docker-cleanup-failed', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: [ACTION REQUIRED] Docker cleanup job failed on {$this->server->name}");
|
||||
$mail->view('emails.docker-cleanup-failed', [
|
||||
'name' => $this->server->name,
|
||||
'text' => $this->message,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
|
||||
@@ -23,14 +23,14 @@ class DockerCleanupSuccess extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Docker cleanup job succeeded on {$this->server->name}");
|
||||
$mailMessage->view('emails.docker-cleanup-success', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Docker cleanup job succeeded on {$this->server->name}");
|
||||
$mail->view('emails.docker-cleanup-success', [
|
||||
'name' => $this->server->name,
|
||||
'text' => $this->message,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
|
||||
@@ -23,26 +23,26 @@ class ForceDisabled extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Server ({$this->server->name}) disabled because it is not paid!");
|
||||
$mailMessage->view('emails.server-force-disabled', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Server ({$this->server->name}) disabled because it is not paid!");
|
||||
$mail->view('emails.server-force-disabled', [
|
||||
'name' => $this->server->name,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Server disabled',
|
||||
description: "Server ({$this->server->name}) disabled because it is not paid!",
|
||||
color: DiscordMessage::errorColor(),
|
||||
);
|
||||
|
||||
$discordMessage->addField('Please update your subscription to enable the server again!', '[Link](https://app.coolify.io/subscriptions)');
|
||||
$message->addField('Please update your subscription to enable the server again!', '[Link](https://app.coolify.io/subscriptions)');
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -23,13 +23,13 @@ class ForceEnabled extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Server ({$this->server->name}) enabled again!");
|
||||
$mailMessage->view('emails.server-force-enabled', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Server ({$this->server->name}) enabled again!");
|
||||
$mail->view('emails.server-force-enabled', [
|
||||
'name' => $this->server->name,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
|
||||
@@ -23,32 +23,32 @@ class HighDiskUsage extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Server ({$this->server->name}) high disk usage detected!");
|
||||
$mailMessage->view('emails.high-disk-usage', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Server ({$this->server->name}) high disk usage detected!");
|
||||
$mail->view('emails.high-disk-usage', [
|
||||
'name' => $this->server->name,
|
||||
'disk_usage' => $this->disk_usage,
|
||||
'threshold' => $this->server_disk_usage_notification_threshold,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: High disk usage detected',
|
||||
description: "Server '{$this->server->name}' high disk usage detected!",
|
||||
color: DiscordMessage::errorColor(),
|
||||
isCritical: true,
|
||||
);
|
||||
|
||||
$discordMessage->addField('Disk usage', "{$this->disk_usage}%", true);
|
||||
$discordMessage->addField('Threshold', "{$this->server_disk_usage_notification_threshold}%", true);
|
||||
$discordMessage->addField('What to do?', '[Link](https://coolify.io/docs/knowledge-base/server/automated-cleanup)', true);
|
||||
$discordMessage->addField('Change Settings', '[Threshold]('.base_url().'/server/'.$this->server->uuid.'#advanced) | [Notification]('.base_url().'/notifications/discord)');
|
||||
$message->addField('Disk usage', "{$this->disk_usage}%", true);
|
||||
$message->addField('Threshold', "{$this->server_disk_usage_notification_threshold}%", true);
|
||||
$message->addField('What to do?', '[Link](https://coolify.io/docs/knowledge-base/server/automated-cleanup)', true);
|
||||
$message->addField('Change Settings', '[Threshold]('.base_url().'/server/'.$this->server->uuid.'#advanced) | [Notification]('.base_url().'/notifications/discord)');
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -32,13 +32,13 @@ class Reachable extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Server ({$this->server->name}) revived.");
|
||||
$mailMessage->view('emails.server-revived', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Server ({$this->server->name}) revived.");
|
||||
$mail->view('emails.server-revived', [
|
||||
'name' => $this->server->name,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
|
||||
@@ -32,26 +32,26 @@ class Unreachable extends CustomEmailNotification
|
||||
|
||||
public function toMail(): ?MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject("Coolify: Your server ({$this->server->name}) is unreachable.");
|
||||
$mailMessage->view('emails.server-lost-connection', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject("Coolify: Your server ({$this->server->name}) is unreachable.");
|
||||
$mail->view('emails.server-lost-connection', [
|
||||
'name' => $this->server->name,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): ?DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':cross_mark: Server unreachable',
|
||||
description: "Your server '{$this->server->name}' is unreachable.",
|
||||
color: DiscordMessage::errorColor(),
|
||||
);
|
||||
|
||||
$discordMessage->addField('IMPORTANT', 'We automatically try to revive your server and turn on all automations & integrations.');
|
||||
$message->addField('IMPORTANT', 'We automatically try to revive your server and turn on all automations & integrations.');
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): ?array
|
||||
|
||||
@@ -30,7 +30,7 @@ class Test extends Notification implements ShouldQueue
|
||||
public function via(object $notifiable): array
|
||||
{
|
||||
if ($this->channel) {
|
||||
return match ($this->channel) {
|
||||
$channels = match ($this->channel) {
|
||||
'email' => [EmailChannel::class],
|
||||
'discord' => [DiscordChannel::class],
|
||||
'telegram' => [TelegramChannel::class],
|
||||
@@ -38,9 +38,11 @@ class Test extends Notification implements ShouldQueue
|
||||
'pushover' => [PushoverChannel::class],
|
||||
default => [],
|
||||
};
|
||||
} else {
|
||||
$channels = $notifiable->getEnabledChannels('test');
|
||||
}
|
||||
|
||||
return $notifiable->getEnabledChannels('test');
|
||||
return $channels;
|
||||
}
|
||||
|
||||
public function middleware(object $notifiable, string $channel)
|
||||
@@ -53,24 +55,24 @@ class Test extends Notification implements ShouldQueue
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject('Coolify: Test Email');
|
||||
$mailMessage->view('emails.test');
|
||||
$mail = new MailMessage;
|
||||
$mail->subject('Coolify: Test Email');
|
||||
$mail->view('emails.test');
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
public function toDiscord(): DiscordMessage
|
||||
{
|
||||
$discordMessage = new DiscordMessage(
|
||||
$message = new DiscordMessage(
|
||||
title: ':white_check_mark: Test Success',
|
||||
description: 'This is a test Discord notification from Coolify. :cross_mark: :warning: :information_source:',
|
||||
color: DiscordMessage::successColor(),
|
||||
);
|
||||
|
||||
$discordMessage->addField(name: 'Dashboard', value: '[Link]('.base_url().')', inline: true);
|
||||
$message->addField(name: 'Dashboard', value: '[Link]('.base_url().')', inline: true);
|
||||
|
||||
return $discordMessage;
|
||||
return $message;
|
||||
}
|
||||
|
||||
public function toTelegram(): array
|
||||
|
||||
@@ -24,16 +24,16 @@ class InvitationLink extends CustomEmailNotification
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$invitation = TeamInvitation::whereEmail($this->user->email)->first();
|
||||
$invitation_team = Team::query()->find($invitation->team->id);
|
||||
$invitation_team = Team::find($invitation->team->id);
|
||||
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject('Coolify: Invitation for '.$invitation_team->name);
|
||||
$mailMessage->view('emails.invitation-link', [
|
||||
$mail = new MailMessage;
|
||||
$mail->subject('Coolify: Invitation for '.$invitation_team->name);
|
||||
$mail->view('emails.invitation-link', [
|
||||
'team' => $invitation_team->name,
|
||||
'email' => $this->user->email,
|
||||
'invitation_link' => $invitation->link,
|
||||
]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
namespace App\Notifications\TransactionalEmails;
|
||||
|
||||
use App\Models\InstanceSettings;
|
||||
use Exception;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
|
||||
@@ -37,7 +36,7 @@ class ResetPassword extends Notification
|
||||
{
|
||||
$type = set_transanctional_email_settings();
|
||||
if (! $type) {
|
||||
throw new Exception('No email settings found.');
|
||||
throw new \Exception('No email settings found.');
|
||||
}
|
||||
|
||||
return ['mail'];
|
||||
@@ -54,11 +53,11 @@ class ResetPassword extends Notification
|
||||
|
||||
protected function buildMailMessage($url)
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject('Coolify: Reset Password');
|
||||
$mailMessage->view('emails.reset-password', ['url' => $url, 'count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')]);
|
||||
$mail = new MailMessage;
|
||||
$mail->subject('Coolify: Reset Password');
|
||||
$mail->view('emails.reset-password', ['url' => $url, 'count' => config('auth.passwords.'.config('auth.defaults.passwords').'.expire')]);
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
|
||||
protected function resetUrl($notifiable)
|
||||
|
||||
@@ -20,10 +20,10 @@ class Test extends CustomEmailNotification
|
||||
|
||||
public function toMail(): MailMessage
|
||||
{
|
||||
$mailMessage = new MailMessage;
|
||||
$mailMessage->subject('Coolify: Test Email');
|
||||
$mailMessage->view('emails.test');
|
||||
$mail = new MailMessage;
|
||||
$mail->subject('Coolify: Test Email');
|
||||
$mail->view('emails.test');
|
||||
|
||||
return $mailMessage;
|
||||
return $mail;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user