From 137dd96d0a65f3101051dda3ac73e84eaacfa048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Laissus?= Date: Thu, 18 Apr 2024 11:46:16 +0200 Subject: [PATCH] feat: add configListener for Health Check --- EventListener/ConfigListener.php | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 EventListener/ConfigListener.php diff --git a/EventListener/ConfigListener.php b/EventListener/ConfigListener.php new file mode 100644 index 0000000..ace257e --- /dev/null +++ b/EventListener/ConfigListener.php @@ -0,0 +1,55 @@ + [ + '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 = PayzenConfigQuery::create() + ->filterByName(['site_id', 'test_certificate', 'production_certificate', 'platform_url', 'mode', 'default_language', 'banking_delay', 'redirect_enabled', 'success_timeout', 'failure_timeout', 'minimum_amount', 'maximum_amount', 'three_ds_minimum_order_amount']) + ->find(); + + $moduleConfig = []; + + $moduleConfig['module'] = Payzen::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('payzen.module.config', $moduleConfig); + + } +} +