diff --git a/Listener/ConfigListener.php b/Listener/ConfigListener.php new file mode 100644 index 0000000..aeb96b0 --- /dev/null +++ b/Listener/ConfigListener.php @@ -0,0 +1,53 @@ + [ + 'onModuleConfig', 128 + ], + ]; + } + + public function onModuleConfig(GenericEvent $event): void + { + $subject = $event->getSubject(); + + if ($subject !== "HealthStatus") { + throw new \RuntimeException('Event subject does not match expected value'); + } + + $configModule = ModuleConfigQuery::create() + ->filterByModuleId(WireTransfer::getModuleId()) + ->filterByName(['iban', 'bic', 'name']) + ->find(); + + $moduleConfig = []; + $moduleConfig['module'] = WireTransfer::getModuleCode(); + $configsCompleted = true; + + if ($configModule->count() === 0) { + $configsCompleted = false; + } + + foreach ($configModule as $config) { + $moduleConfig[$config->getName()] = $config->getValue(); + if ($config->getValue() === null) { + $configsCompleted = false; + } + } + + $moduleConfig['completed'] = $configsCompleted; + + $event->setArgument('wiretransfer.module.config', $moduleConfig); + } +}