. */ declare(strict_types=1); namespace FireflyIII\Notifications\Admin; use FireflyIII\Notifications\Notifiables\OwnerNotifiable; use FireflyIII\Notifications\ReturnsAvailableChannels; use FireflyIII\Notifications\ReturnsSettings; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Messages\SlackMessage; use Illuminate\Notifications\Notification; use Illuminate\Support\Facades\Log; use NotificationChannels\Pushover\PushoverMessage; use Ntfy\Message; /** * Class VersionCheckResult */ class VersionCheckResult extends Notification { use Queueable; private string $message; public function __construct(string $message) { $this->message = $message; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toArray(OwnerNotifiable $notifiable) { return [ ]; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toMail(OwnerNotifiable $notifiable) { return (new MailMessage()) ->markdown('emails.new-version', ['message' => $this->message]) ->subject((string) trans('email.new_version_email_subject')) ; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toNtfy(OwnerNotifiable $notifiable): Message { Log::debug('Now in toNtfy() for VersionCheckResult'); $settings = ReturnsSettings::getSettings('ntfy', 'owner', null); $message = new Message(); $message->topic($settings['ntfy_topic']); $message->title((string) trans('email.new_version_email_subject')); $message->body($this->message); return $message; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toPushover(OwnerNotifiable $notifiable): PushoverMessage { Log::debug('Now in toPushover() for VersionCheckResult'); return PushoverMessage::create($this->message) ->title((string) trans('email.new_version_email_subject')) ; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toSlack(OwnerNotifiable $notifiable) { return new SlackMessage()->content($this->message) ->attachment(static function ($attachment): void { $attachment->title('Firefly III @ GitHub', 'https://github.com/firefly-iii/firefly-iii/releases'); }) ; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function via(OwnerNotifiable $notifiable) { return ReturnsAvailableChannels::returnChannels('owner'); } }