mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 10:47:00 +00:00 
			
		
		
		
	Add some slack notifications and a todo to fix the rest
This commit is contained in:
		| @@ -87,21 +87,10 @@ class VersionCheckResult extends Notification | ||||
|      */ | ||||
|     public function toSlack($notifiable) | ||||
|     { | ||||
|         //        return (new SlackMessage())->text($this->message)
 | ||||
|         //            ->sectionBlock(function (SectionBlock $block) {
 | ||||
|         //                $button = new ButtonElement('Button');
 | ||||
|         //                $button->url('https://github.com/firefly-iii/firefly-iii/releases');
 | ||||
|         //                $block->accessory($button);
 | ||||
|         //            });
 | ||||
|         ////            ->attachment(function ($attachment) {
 | ||||
|         ////                $attachment->title('Firefly III @ GitHub', 'https://github.com/firefly-iii/firefly-iii/releases');
 | ||||
|         ////            });
 | ||||
| 
 | ||||
| 
 | ||||
|         return (new SlackMessage())->content($this->message) | ||||
|             ->attachment(function ($attachment) { | ||||
|                 $attachment->title('Firefly III @ GitHub', 'https://github.com/firefly-iii/firefly-iii/releases'); | ||||
|             }); | ||||
|                                    ->attachment(function ($attachment) { | ||||
|                                        $attachment->title('Firefly III @ GitHub', 'https://github.com/firefly-iii/firefly-iii/releases'); | ||||
|                                    }); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
| @@ -114,7 +103,7 @@ class VersionCheckResult extends Notification | ||||
|     public function via($notifiable) | ||||
|     { | ||||
|         /** @var User|null $user */ | ||||
|         $user = auth()->user(); | ||||
|         $user     = auth()->user(); | ||||
|         $slackUrl = null === $user ? '' : (string)app('preferences')->getForUser(auth()->user(), 'slack_webhook_url', '')->data; | ||||
|         if (str_starts_with($slackUrl, 'https://hooks.slack.com/services/')) { | ||||
|             return ['mail', 'slack']; | ||||
|   | ||||
							
								
								
									
										116
									
								
								app/Notifications/User/RuleActionFailed.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								app/Notifications/User/RuleActionFailed.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,116 @@ | ||||
| <?php | ||||
| 
 | ||||
| /* | ||||
|  * NewAccessToken.php | ||||
|  * Copyright (c) 2022 james@firefly-iii.org | ||||
|  * | ||||
|  * This file is part of Firefly III (https://github.com/firefly-iii). | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU Affero General Public License as | ||||
|  * published by the Free Software Foundation, either version 3 of the | ||||
|  * License, or (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU Affero General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU Affero General Public License | ||||
|  * along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
|  */ | ||||
| 
 | ||||
| declare(strict_types=1); | ||||
| 
 | ||||
| namespace FireflyIII\Notifications\User; | ||||
| 
 | ||||
| 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; | ||||
| 
 | ||||
|     /** | ||||
|      * Create a new notification instance. | ||||
|      * | ||||
|      * @return void | ||||
|      */ | ||||
|     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; | ||||
| 
 | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the array representation of the notification. | ||||
|      * | ||||
|      * @param mixed $notifiable | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function toArray($notifiable) | ||||
|     { | ||||
|         return [ | ||||
|             //
 | ||||
|         ]; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the Slack representation of the notification. | ||||
|      * | ||||
|      * @param mixed $notifiable | ||||
|      * | ||||
|      * @return SlackMessage | ||||
|      */ | ||||
|     public function toSlack($notifiable) | ||||
|     { | ||||
|         $groupTitle = $this->groupTitle; | ||||
|         $groupLink  = $this->groupLink; | ||||
|         $ruleTitle  = $this->ruleTitle; | ||||
|         $ruleLink   = $this->ruleLink; | ||||
| 
 | ||||
|         return (new SlackMessage())->content($this->message)->attachment(function ($attachment) use ($groupTitle, $groupLink) { | ||||
|             $attachment->title((string)trans('rules.inspect_transaction', ['title' => $groupTitle]), $groupLink); | ||||
|         })->attachment(function ($attachment) use ($ruleTitle, $ruleLink) { | ||||
|             $attachment->title((string)trans('rules.inspect_rule', ['title' => $ruleTitle]), $ruleLink); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * Get the notification's delivery channels. | ||||
|      * | ||||
|      * @param mixed $notifiable | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function via($notifiable) | ||||
|     { | ||||
|         /** @var User|null $user */ | ||||
|         $user     = auth()->user(); | ||||
|         $slackUrl = null === $user ? '' : (string)app('preferences')->getForUser(auth()->user(), 'slack_webhook_url', '')->data; | ||||
|         if (str_starts_with($slackUrl, 'https://hooks.slack.com/services/')) { | ||||
|             app('log')->debug('Will send ruleActionFailed through Slack!'); | ||||
|             return ['slack']; | ||||
|         } | ||||
|         app('log')->debug('Will NOT send ruleActionFailed through Slack'); | ||||
|         return []; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user