diff --git a/controller/ControleurObjet.php b/controller/ControleurObjet.php index c9f7812a5ac4fe277b8dac98f1ad255ff368b7f7..7dfa733098803db3c3c36bb0ad32d9e0e4609c3e 100644 --- a/controller/ControleurObjet.php +++ b/controller/ControleurObjet.php @@ -127,4 +127,31 @@ class ControleurObjet 'pageContent' => "Il manque des paramètres dans l'url." ]); } + + public static function supprimerObjet(): string + { + $pageTitle = "Suppression d'un(e) {$_GET["tableName"]}"; + if (!empty($_GET["tableName"]) && !empty($_GET["idName"]) && !empty($_GET["idValue"])){ + $response = Objet::deleteObjectById($_GET["tableName"], + [ + "name" => $_GET["idName"], + "value" => $_GET["idValue"] + ]); + if($response){ + return view('simple-data', [ + 'pageTitle' => $pageTitle, + 'pageContent' => "Objet supprimé avec succès." + ]); + }else{ + return view('simple-data', [ + 'pageTitle' => $pageTitle, + 'pageContent' => "Erreur lors de la suppression de l'objet." + ]); + } + } + return view('simple-data', [ + 'pageTitle' => $pageTitle, + 'pageContent' => "Il manque des paramètres dans l'url." + ]); + } } \ No newline at end of file diff --git a/index.php b/index.php index 60e332d315a14601ec276e082cd7fb9b002ec050..3bdc28580dbb75ccd88d6c62e6667431bbea083e 100644 --- a/index.php +++ b/index.php @@ -21,16 +21,17 @@ if (empty($_REQUEST["action"])) { // C'est plus long que get_class_methods mais c'est moins sujet à problèmes. try { echo match ($_REQUEST["action"]) { - "lireAuteur" => ControleurAuteur::lireAuteur(), - "lireAuteurs" => ControleurAuteur::lireAuteurs(), - "creerObjet" => ControleurObjet::createObject(), - "lireAdherent" => ControleurAdherent::lireAdherent(), - "lireAdherents" => ControleurAdherent::lireAdherents(), - "lireLivre" => ControleurLivre::lireLivre(), - "lireLivres" => ControleurLivre::lireLivres(), - "describeTable" => ControleurObjet::describeTable(), - "modifierObjet" => ControleurObjet::modifyObject(), - default => ControleurAuteur::lireAuteur(), + "lireAuteur" => ControleurAuteur::lireAuteur(), + "lireAuteurs" => ControleurAuteur::lireAuteurs(), + "creerObjet" => ControleurObjet::createObject(), + "lireAdherent" => ControleurAdherent::lireAdherent(), + "lireAdherents" => ControleurAdherent::lireAdherents(), + "lireLivre" => ControleurLivre::lireLivre(), + "lireLivres" => ControleurLivre::lireLivres(), + "describeTable" => ControleurObjet::describeTable(), + "modifierObjet" => ControleurObjet::modifyObject(), + "supprimerObjet" => ControleurObjet::supprimerObjet(), + default => ControleurAuteur::lireAuteur(), }; } catch (Exception $e) { echo "Erreur lors de l'affichage de la page: " . $e->getMessage(); diff --git a/models/Objet.php b/models/Objet.php index 4c2bd6a5d2b6165e818856eac39ef38397539d67..468e42937fbf81aa43e63a00610aa83d17ada70e 100644 --- a/models/Objet.php +++ b/models/Objet.php @@ -42,6 +42,7 @@ class Objet public static function addObject(String $tableName, array $columns) : array { $result["status"] = "success"; + $result["message"] = "$tableName créé avec succès !"; $validation = Objet::verifyTableAndFormat($tableName, $columns); if($validation["status"] !== "success"){ @@ -225,4 +226,27 @@ class Objet "message" => "Validation réussie." ]; } + + public static function deleteObjectById(string $tableName, array $id): bool + { + $validation = Objet::verifyTableAndFormat($tableName); + if($validation["status"] !== "success"){ + return false; + } + if(empty($id["name"]) || empty($id["value"]) || !isAlphaNumeric($id["name"])){ + return false; + } + + // On prépare la requête + $queryString = ("DELETE FROM $tableName WHERE " . $id["name"] . "=?"); + $insertQuery = Database::pdo()->prepare($queryString); + try{ + // Et on l'exécute + $insertQuery->execute([$id["value"]]); + } catch (PDOException $e) { + echo $e->getMessage(); + return false; + } + return true; + } } \ No newline at end of file