. */ declare(strict_types=1); namespace FireflyIII\Notifications\User; use FireflyIII\Notifications\ReturnsAvailableChannels; use FireflyIII\User; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Messages\SlackMessage; use Illuminate\Notifications\Notification; /** * Class RuleActionFailed */ class RuleActionFailed extends Notification { use Queueable; private string $groupLink; private string $groupTitle; private string $message; private string $ruleLink; private string $ruleTitle; public function __construct(array $params) { [$mainMessage, $groupTitle, $groupLink, $ruleTitle, $ruleLink] = $params; $this->message = $mainMessage; $this->groupTitle = $groupTitle; $this->groupLink = $groupLink; $this->ruleTitle = $ruleTitle; $this->ruleLink = $ruleLink; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toArray(User $notifiable) { return [ ]; } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function toSlack(User $notifiable) { $groupTitle = $this->groupTitle; $groupLink = $this->groupLink; $ruleTitle = $this->ruleTitle; $ruleLink = $this->ruleLink; return new SlackMessage()->content($this->message)->attachment(static function ($attachment) use ($groupTitle, $groupLink): void { $attachment->title((string) trans('rules.inspect_transaction', ['title' => $groupTitle]), $groupLink); })->attachment(static function ($attachment) use ($ruleTitle, $ruleLink): void { $attachment->title((string) trans('rules.inspect_rule', ['title' => $ruleTitle]), $ruleLink); }); } /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function via(User $notifiable) { // todo disable mail channel return ReturnsAvailableChannels::returnChannels('user', $notifiable); } }