From b7f25bd660c275be26d6b4e7cb093638a2a0c50f Mon Sep 17 00:00:00 2001
From: SofianeLasri <alasri250@gmail.com>
Date: Sun, 20 Nov 2022 12:40:41 +0100
Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20d'une=20route=20d=C3=A9di=C3=A9?=
 =?UTF-8?q?e=20=C3=A0=20la=20description=20des=20tables.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 controller/ControleurAuteur.php               |  1 +
 controller/ControleurObjet.php                | 26 ++++++++++++-------
 index.php                                     |  1 +
 resources/views/formulaire-creation-objet.php |  2 +-
 4 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/controller/ControleurAuteur.php b/controller/ControleurAuteur.php
index 99e02c4..7936ad2 100644
--- a/controller/ControleurAuteur.php
+++ b/controller/ControleurAuteur.php
@@ -5,6 +5,7 @@ require_once("models/Auteur.php");
 class ControleurAuteur extends ControleurObjet
 {
     protected static string $object = "Auteur";
+
     /**
      * Charge la page de la liste des auteurs.
      * @return string
diff --git a/controller/ControleurObjet.php b/controller/ControleurObjet.php
index bbfc296..df12d81 100644
--- a/controller/ControleurObjet.php
+++ b/controller/ControleurObjet.php
@@ -2,12 +2,6 @@
 
 class ControleurObjet
 {
-    public static function lireObjets() : string
-    {
-        $titre = "Listes des " . strtolower(static::$object) . "s";
-        return $titre;
-    }
-
     /**
      * Affiche la page de cration d'un objet et se charge également de sa création.
      * @return string
@@ -29,13 +23,27 @@ class ControleurObjet
                 $createdObject["status"] = "danger"; // Pour le style Bootstrap
             }
         }
-        if(!empty($_GET["describeTable"])){
-            return json_encode(Objet::describeObject($_GET["describeTable"]));
-        }
 
         return view('formulaire-creation-objet', [
             'pageTitle' => 'Créer un objet',
             'insertMessage' => $createdObject
         ]);
     }
+
+    /**
+     * Retourne une liste JSON de la description de la table
+     * @return string
+     */
+    public static function describeTable() : string
+    {
+        if(!empty($_GET["describeTable"])){
+            return json_encode(Objet::describeObject($_GET["describeTable"]));
+        } else {
+            return json_encode([
+                "status" => "fail",
+                "message" => "Veuillez spécifier un nom de table!",
+                "columns" => []
+            ]);
+        }
+    }
 }
\ No newline at end of file
diff --git a/index.php b/index.php
index 1af012b..1806364 100644
--- a/index.php
+++ b/index.php
@@ -27,6 +27,7 @@ if (empty($_REQUEST["action"])) {
             "lireAdherents" => ControleurAdherent::lireAdherents(),
             "lireLivre"     => ControleurLivre::lireLivre(),
             "lireLivres"    => ControleurLivre::lireLivres(),
+            "describeTable" => ControleurObjet::describeTable(),
             default         => ControleurAuteur::lireAuteur(),
         };
     } catch (Exception $e) {
diff --git a/resources/views/formulaire-creation-objet.php b/resources/views/formulaire-creation-objet.php
index 923e0bd..d5e49f3 100644
--- a/resources/views/formulaire-creation-objet.php
+++ b/resources/views/formulaire-creation-objet.php
@@ -56,7 +56,7 @@
     async function loadObjectTypeForm(objectType){
         objectForm.innerHTML = "";
 
-        await fetch('?action=creerObjet&describeTable=' + objectType)
+        await fetch('?action=describeTable&describeTable=' + objectType)
             .then(res => res.json())
             .then((out) => {
                 console.log('Output: ', out);
-- 
GitLab