]> git.mxchange.org Git - friendica.git/commitdiff
Create event for check_item_notification hook
authorArt4 <art4@wlabs.de>
Mon, 24 Mar 2025 12:28:22 +0000 (12:28 +0000)
committerArt4 <art4@wlabs.de>
Mon, 24 Mar 2025 12:28:22 +0000 (12:28 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
src/Model/Post/UserNotification.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/ArrayFilterEventTest.php

index bc2262df55bc3f03a34aca17f1eae20c5b29c5ad..356dfe7e9c7a6456ddc64f002ee64fc36ac84768 100644 (file)
@@ -59,6 +59,7 @@ final class HookEventBridge
                ArrayFilterEvent::ITEM_TAGGED                     => 'tagged',
                ArrayFilterEvent::DISPLAY_ITEM                    => 'display_item',
                ArrayFilterEvent::CACHE_ITEM                      => 'put_item_in_cache',
+               ArrayFilterEvent::CHECK_ITEM_NOTIFICATION         => 'check_item_notification',
                ArrayFilterEvent::DETECT_LANGUAGES                => 'detect_languages',
                ArrayFilterEvent::RENDER_LOCATION                 => 'render_location',
                ArrayFilterEvent::ITEM_PHOTO_MENU                 => 'item_photo_menu',
@@ -130,6 +131,7 @@ final class HookEventBridge
                        ArrayFilterEvent::ITEM_TAGGED                     => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM                    => 'onArrayFilterEvent',
                        ArrayFilterEvent::CACHE_ITEM                      => 'onArrayFilterEvent',
+                       ArrayFilterEvent::CHECK_ITEM_NOTIFICATION         => 'onArrayFilterEvent',
                        ArrayFilterEvent::DETECT_LANGUAGES                => 'onArrayFilterEvent',
                        ArrayFilterEvent::RENDER_LOCATION                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::ITEM_PHOTO_MENU                 => 'onArrayFilterEvent',
index 02a516bf61a36fe159121adac453b6958d729ffa..0313520060b8fcc8bb2a156738274ba68e1bac67 100644 (file)
@@ -68,6 +68,8 @@ final class ArrayFilterEvent extends Event
 
        public const CACHE_ITEM = 'friendica.data.cache_item';
 
+       public const CHECK_ITEM_NOTIFICATION = 'friendica.data.check_item_notification';
+
        public const DETECT_LANGUAGES = 'friendica.data.detect_languages';
 
        public const RENDER_LOCATION = 'friendica.data.render_location';
index 95c578f4868ba4a7c145af7b29369fd01d9b0290..d212b07b2fefeb124ffee1a7b12761babd68c31a 100644 (file)
@@ -9,10 +9,10 @@ namespace Friendica\Model\Post;
 
 use BadMethodCallException;
 use Exception;
-use Friendica\Core\Hook;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Event\ArrayFilterEvent;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
 use Friendica\Model\Post;
@@ -396,7 +396,12 @@ class UserNotification
                $profiles = [$owner['nurl']];
 
                $notification_data = ['uid' => $uid, 'profiles' => []];
-               Hook::callAll('check_item_notification', $notification_data);
+
+               $eventDispatcher = DI::eventDispatcher();
+
+               $notification_data = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::CHECK_ITEM_NOTIFICATION, $notification_data),
+               )->getArray();
 
                // Normalize the connector profiles
                foreach ($notification_data['profiles'] as $profile) {
index d47ea1cbf737e96f5ede0c33fc2a09758ffe3eea..f00e803ba178ca23dcf50ebb9138793090ac21b7 100644 (file)
@@ -48,6 +48,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::ITEM_TAGGED                     => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM                    => 'onArrayFilterEvent',
                        ArrayFilterEvent::CACHE_ITEM                      => 'onArrayFilterEvent',
+                       ArrayFilterEvent::CHECK_ITEM_NOTIFICATION         => 'onArrayFilterEvent',
                        ArrayFilterEvent::DETECT_LANGUAGES                => 'onArrayFilterEvent',
                        ArrayFilterEvent::RENDER_LOCATION                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::ITEM_PHOTO_MENU                 => 'onArrayFilterEvent',
@@ -460,6 +461,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::ITEM_TAGGED, 'tagged'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'display_item'],
                        [ArrayFilterEvent::CACHE_ITEM, 'put_item_in_cache'],
+                       [ArrayFilterEvent::CHECK_ITEM_NOTIFICATION, 'check_item_notification'],
                        [ArrayFilterEvent::DETECT_LANGUAGES, 'detect_languages'],
                        [ArrayFilterEvent::RENDER_LOCATION, 'render_location'],
                        [ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'],
index 5bc71084c381000367b54edd17cd03c261d27387..91d611a33bb19e7feed813e1d5a2faff0bb6c42a 100644 (file)
@@ -45,6 +45,7 @@ class ArrayFilterEventTest extends TestCase
                        [ArrayFilterEvent::ITEM_TAGGED, 'friendica.data.item_tagged'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'friendica.data.display_item'],
                        [ArrayFilterEvent::CACHE_ITEM, 'friendica.data.cache_item'],
+                       [ArrayFilterEvent::CHECK_ITEM_NOTIFICATION, 'friendica.data.check_item_notification'],
                        [ArrayFilterEvent::DETECT_LANGUAGES, 'friendica.data.detect_languages'],
                        [ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'],
                        [ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'],