diff --git a/EventListener/ConfigListener.php b/EventListener/ConfigListener.php new file mode 100644 index 0000000..6a3f480 --- /dev/null +++ b/EventListener/ConfigListener.php @@ -0,0 +1,71 @@ + [ + '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(PayPlugModule::getModuleId()) + ->filterByName(['live_api_key', 'test_api_key', 'payment_page_type', 'api_mode', 'payment_enabled']) + ->find(); + + $moduleConfig = []; + $moduleConfig['module'] = PayPlugModule::getModuleCode(); + + $paymentEnabled = false; + $liveApiKey = null; + $testApiKey = null; + + foreach ($configModule as $config) { + $name = $config->getName(); + $value = $config->getValue(); + + if ($name === 'payment_enabled') { + $paymentEnabled = $value == 1; + } + + if ($name === 'live_api_key') { + $liveApiKey = $value; + } + + if ($name === 'test_api_key') { + $testApiKey = $value; + } + + $moduleConfig[$name] = $value; + } + + if (($liveApiKey !== null || $testApiKey !== null) && $paymentEnabled) { + $moduleConfig['completed'] = true; + } else { + $moduleConfig['completed'] = false; + } + + $moduleConfig['payment_enabled'] = $paymentEnabled; + + $event->setArgument('payplug.module.config', $moduleConfig); + } + +}