injectFn($this->registerRuleListeners(...)); } private function registerRuleListeners( IEventDispatcher $dispatcher, ContainerInterface $container, LoggerInterface $logger, ): void { /** @var WebhookListenerMapper */ $mapper = $container->get(WebhookListenerMapper::class); $userSession = $container->get(IUserSession::class); /* Listen to all events with at least one webhook configured */ $configuredEvents = $mapper->getAllConfiguredEvents($userSession->getUser()?->getUID()); foreach ($configuredEvents as $eventName) { $logger->debug("Listening to {$eventName}"); $dispatcher->addServiceListener( $eventName, WebhooksEventListener::class, -1, ); } } }