From 02d0d1767b9a3b19838c018bf5d50179a4e8f092 Mon Sep 17 00:00:00 2001
From: Jean-Philippe Metivier <jean-philippe.metivier@unicaen.fr>
Date: Wed, 3 Apr 2024 15:00:28 +0200
Subject: [PATCH] Correction de la route console pour rafraichir les
 indicateurs

---
 config/merged/indicateur.config.php           |  7 ++++--
 .../Controller/CategorieController.php        |  5 ++++
 .../IndicateurConsoleController.php           | 19 +++++++++++++++
 .../IndicateurConsoleControllerFactory.php    | 24 +++++++++++++++++++
 4 files changed, 53 insertions(+), 2 deletions(-)
 create mode 100644 src/UnicaenIndicateur/Controller/IndicateurConsoleController.php
 create mode 100644 src/UnicaenIndicateur/Controller/IndicateurConsoleControllerFactory.php

diff --git a/config/merged/indicateur.config.php b/config/merged/indicateur.config.php
index 8308299..1590f5a 100644
--- a/config/merged/indicateur.config.php
+++ b/config/merged/indicateur.config.php
@@ -1,5 +1,7 @@
 <?php
 
+use UnicaenIndicateur\Controller\IndicateurConsoleController;
+use UnicaenIndicateur\Controller\IndicateurConsoleControllerFactory;
 use UnicaenIndicateur\Controller\IndicateurController;
 use UnicaenIndicateur\Controller\IndicateurControllerFactory;
 use UnicaenIndicateur\Form\Indicateur\IndicateurForm;
@@ -53,7 +55,7 @@ return [
                     ],
                 ],
                 [
-                    'controller' => IndicateurController::class,
+                    'controller' => IndicateurConsoleController::class,
                     'action' => [
                         'rafraichir-console',
                     ],
@@ -174,7 +176,7 @@ return [
                     'options' => [
                         'route' => 'indicateur-refresh',
                         'defaults' => [
-                            'controller' => IndicateurController::class,
+                            'controller' => IndicateurConsoleController::class,
                             'action' => 'rafraichir-console'
                         ],
                     ],
@@ -191,6 +193,7 @@ return [
     'controllers'     => [
         'factories' => [
             IndicateurController::class => IndicateurControllerFactory::class,
+            IndicateurConsoleController::class => IndicateurConsoleControllerFactory::class,
         ],
     ],
     'form_elements' => [
diff --git a/src/UnicaenIndicateur/Controller/CategorieController.php b/src/UnicaenIndicateur/Controller/CategorieController.php
index 3b0231b..7f1c01f 100644
--- a/src/UnicaenIndicateur/Controller/CategorieController.php
+++ b/src/UnicaenIndicateur/Controller/CategorieController.php
@@ -20,4 +20,9 @@ class CategorieController extends AbstractActionController
             'categories' => $categories,
         ]);
     }
+
+    public function ajouterAction(): ViewModel
+    {
+
+    }
 }
\ No newline at end of file
diff --git a/src/UnicaenIndicateur/Controller/IndicateurConsoleController.php b/src/UnicaenIndicateur/Controller/IndicateurConsoleController.php
new file mode 100644
index 0000000..8e68db0
--- /dev/null
+++ b/src/UnicaenIndicateur/Controller/IndicateurConsoleController.php
@@ -0,0 +1,19 @@
+<?php
+
+namespace UnicaenIndicateur\Controller;
+
+use Unicaen\Console\Controller\AbstractConsoleController;
+use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait;
+
+class IndicateurConsoleController extends AbstractConsoleController
+{
+    use IndicateurServiceAwareTrait;
+
+    public function rafraichirConsoleAction(): void
+    {
+        $indicateurs = $this->getIndicateurService()->getIndicateurs();
+        foreach ($indicateurs as $indicateur) {
+            $this->getIndicateurService()->refresh($indicateur);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/UnicaenIndicateur/Controller/IndicateurConsoleControllerFactory.php b/src/UnicaenIndicateur/Controller/IndicateurConsoleControllerFactory.php
new file mode 100644
index 0000000..49b71d5
--- /dev/null
+++ b/src/UnicaenIndicateur/Controller/IndicateurConsoleControllerFactory.php
@@ -0,0 +1,24 @@
+<?php
+
+namespace UnicaenIndicateur\Controller;
+
+use Psr\Container\ContainerInterface;
+use Unicaen\Console\Controller\AbstractConsoleController;
+use UnicaenIndicateur\Service\Indicateur\IndicateurService;
+use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait;
+
+class IndicateurConsoleControllerFactory
+{
+
+    public function __invoke(ContainerInterface $container): IndicateurConsoleController
+    {
+        /**
+         * @var IndicateurService $indicateurService
+         */
+        $indicateurService = $container->get(IndicateurService::class);
+
+        $controller = new IndicateurConsoleController();
+        $controller->setIndicateurService($indicateurService);
+        return $controller;
+    }
+}
\ No newline at end of file
-- 
GitLab