]> git.mxchange.org Git - friendica.git/commitdiff
Create Events for protocol support hooks
authorArt4 <art4@wlabs.de>
Mon, 24 Feb 2025 08:40:07 +0000 (08:40 +0000)
committerArt4 <art4@wlabs.de>
Mon, 24 Feb 2025 08:40:07 +0000 (08:40 +0000)
src/Core/Hooks/HookEventBridge.php
src/Core/Protocol.php
src/Event/ArrayFilterEvent.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/ArrayFilterEventTest.php

index 39198cf86cde527ac04e79ad50c3c958bc1e6565..bf2289e071351d412fb082f04b06761dd52fb8e2 100644 (file)
@@ -59,6 +59,9 @@ final class HookEventBridge
                ArrayFilterEvent::HTML_TO_BBCODE_END     => 'html2bbcode',
                ArrayFilterEvent::BBCODE_TO_MARKDOWN_END => 'bb2diaspora',
                ArrayFilterEvent::JOT_NETWORKS           => 'jot_networks',
+               ArrayFilterEvent::PROTOCOL_SUPPORTS_FOLLOW => 'support_follow',
+               ArrayFilterEvent::PROTOCOL_SUPPORTS_REVOKE_FOLLOW => 'support_revoke_follow',
+               ArrayFilterEvent::PROTOCOL_SUPPORTS_PROBE => 'support_probe',
                HtmlFilterEvent::HEAD                    => 'head',
                HtmlFilterEvent::FOOTER                  => 'footer',
                HtmlFilterEvent::PAGE_HEADER             => 'page_header',
@@ -98,6 +101,9 @@ final class HookEventBridge
                        ArrayFilterEvent::HTML_TO_BBCODE_END     => 'onHtmlToBbcodeEvent',
                        ArrayFilterEvent::BBCODE_TO_MARKDOWN_END => 'onBbcodeToMarkdownEvent',
                        ArrayFilterEvent::JOT_NETWORKS           => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROTOCOL_SUPPORTS_FOLLOW => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROTOCOL_SUPPORTS_REVOKE_FOLLOW => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROTOCOL_SUPPORTS_PROBE => 'onArrayFilterEvent',
                        HtmlFilterEvent::HEAD                    => 'onHtmlFilterEvent',
                        HtmlFilterEvent::FOOTER                  => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_HEADER             => 'onHtmlFilterEvent',
index 53f69bc509fbe97661cb364972fed388bca5dfaa..1e5b7e7f21acfe5524832028a3dca479202cad68 100644 (file)
@@ -9,6 +9,7 @@ namespace Friendica\Core;
 
 use Friendica\Database\DBA;
 use Friendica\DI;
+use Friendica\Event\ArrayFilterEvent;
 use Friendica\Model\User;
 use Friendica\Network\HTTPException;
 use Friendica\Protocol\ActivityPub;
@@ -76,7 +77,12 @@ class Protocol
                        'protocol' => $protocol,
                        'result'   => null
                ];
-               Hook::callAll('support_follow', $hook_data);
+
+               $eventDispatcher = DI::eventDispatcher();
+
+               $hook_data = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::PROTOCOL_SUPPORTS_FOLLOW, $hook_data),
+               )->getArray();
 
                return $hook_data['result'] === true;
        }
@@ -98,7 +104,12 @@ class Protocol
                        'protocol' => $protocol,
                        'result'   => null
                ];
-               Hook::callAll('support_revoke_follow', $hook_data);
+
+               $eventDispatcher = DI::eventDispatcher();
+
+               $hook_data = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::PROTOCOL_SUPPORTS_REVOKE_FOLLOW, $hook_data),
+               )->getArray();
 
                return $hook_data['result'] === true;
        }
@@ -311,7 +322,12 @@ class Protocol
                        'protocol' => $protocol,
                        'result'   => null
                ];
-               Hook::callAll('support_probe', $hook_data);
+
+               $eventDispatcher = DI::eventDispatcher();
+
+               $hook_data = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::PROTOCOL_SUPPORTS_PROBE, $hook_data),
+               )->getArray();
 
                return $hook_data['result'] === true;
        }
index 43734efc959474af2b54add60061254cd35a1797..d21c6f8d78ddbd5b7615e07da3bc70dfd54f557d 100644 (file)
@@ -56,6 +56,12 @@ final class ArrayFilterEvent extends Event
 
        public const JOT_NETWORKS = 'friendica.data.jot_networks';
 
+       public const PROTOCOL_SUPPORTS_FOLLOW = 'friendica.data.protocol_supports_follow';
+
+       public const PROTOCOL_SUPPORTS_REVOKE_FOLLOW = 'friendica.data.protocol_supports_revoke_follow';
+
+       public const PROTOCOL_SUPPORTS_PROBE = 'friendica.data.protocol_supports_probe';
+
        private array $array;
 
        public function __construct(string $name, array $array)
index 9da695a74cf587fd51ed0a11a231c64c8a981d00..075204160402f6dbdedf48e63b4d691e5259dd7c 100644 (file)
@@ -48,6 +48,9 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::HTML_TO_BBCODE_END     => 'onHtmlToBbcodeEvent',
                        ArrayFilterEvent::BBCODE_TO_MARKDOWN_END => 'onBbcodeToMarkdownEvent',
                        ArrayFilterEvent::JOT_NETWORKS           => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROTOCOL_SUPPORTS_FOLLOW => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROTOCOL_SUPPORTS_REVOKE_FOLLOW => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROTOCOL_SUPPORTS_PROBE => 'onArrayFilterEvent',
                        HtmlFilterEvent::HEAD                    => 'onHtmlFilterEvent',
                        HtmlFilterEvent::FOOTER                  => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_HEADER             => 'onHtmlFilterEvent',
@@ -272,6 +275,9 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::PAGE_INFO, 'page_info_data'],
                        [ArrayFilterEvent::SMILEY_LIST, 'smilie'],
                        [ArrayFilterEvent::JOT_NETWORKS, 'jot_networks'],
+                       [ArrayFilterEvent::PROTOCOL_SUPPORTS_FOLLOW, 'support_follow'],
+                       [ArrayFilterEvent::PROTOCOL_SUPPORTS_REVOKE_FOLLOW, 'support_revoke_follow'],
+                       [ArrayFilterEvent::PROTOCOL_SUPPORTS_PROBE, 'support_probe'],
                ];
        }
 
index ddb7cb4758c323b4e27d0e63fb075935e490562c..2d396e67609c7a0ce13fb115024c36f446ceba57 100644 (file)
@@ -44,6 +44,9 @@ class ArrayFilterEventTest extends TestCase
                        [ArrayFilterEvent::BBCODE_TO_HTML_START, 'friendica.data.bbcode_to_html_start'],
                        [ArrayFilterEvent::BBCODE_TO_MARKDOWN_END, 'friendica.data.bbcode_to_markdown_end'],
                        [ArrayFilterEvent::JOT_NETWORKS, 'friendica.data.jot_networks'],
+                       [ArrayFilterEvent::PROTOCOL_SUPPORTS_FOLLOW, 'friendica.data.protocol_supports_follow'],
+                       [ArrayFilterEvent::PROTOCOL_SUPPORTS_REVOKE_FOLLOW, 'friendica.data.protocol_supports_revoke_follow'],
+                       [ArrayFilterEvent::PROTOCOL_SUPPORTS_PROBE, 'friendica.data.protocol_supports_probe'],
                ];
        }