From 3b559b5db8a5742bae30b8c77586c22073720120 Mon Sep 17 00:00:00 2001
From: vbochet <vbochet@gmail.com>
Date: Sat, 7 May 2016 14:49:42 +0200
Subject: [PATCH] =?UTF-8?q?Modification=20du=20contr=C3=B4leur=20de=20Jeu?=
 =?UTF-8?q?=20pour=20impl=C3=A9menter=20l'algorithme=20de=20v=C3=A9rificat?=
 =?UTF-8?q?ion=20et=20d'enregistrement=20d'un=20jeu=20favoris?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/controller/JeuController.php | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/app/controller/JeuController.php b/app/controller/JeuController.php
index b730e05..eb87ebb 100644
--- a/app/controller/JeuController.php
+++ b/app/controller/JeuController.php
@@ -85,12 +85,28 @@ class JeuController extends Controller {
     }
 
     public function displayFavorisValid() { // la fonction d'affichage de réussite
-		// vérification que membre connecté
-		// vérification que jeu existe
-		// vérification que jeu pas déjà favoris
-		// mise en favoris du jeu
-			// si une ligne joueur-jeu existe déjà => UPDATE
-			// sinon => INSERT avec des null pour le classement et le score
-        $this->view->display(); // on affiche la page avec le message de réussite
+		session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
+		$slug_jeu = $this->route["params"]["slug"];
+		if(!isset($_SESSION['connected'])) { // vérification que membre connecté
+			$_SESSION["addFavorisErrCode"] = 2; // on stocke le code d'erreur
+			$this->view->display(); // on affiche la page avec le message d'erreur
+		}
+		else if(!(Jeu::checkExists($slug_jeu))) { // vérification que jeu existe
+			$_SESSION["addFavorisErrCode"] = 3; // on stocke le code d'erreur
+			$this->view->display(); // on affiche la page avec le message d'erreur
+		}
+		else if(Profil::checkJeuFavoris($_SESSION['user']->slug, $slug_jeu)) { // vérification que jeu pas déjà favoris
+			$_SESSION["addFavorisErrCode"] = 4; // on stocke le code d'erreur
+			$this->view->display(); // on affiche la page avec le message d'erreur
+		}
+		else { // mise en favoris du jeu
+			if(Profil::checkADejaJoue($_SESSION['user']->slug, $slug_jeu)) { // si une ligne joueur-jeu existe déjà => UPDATE
+				Profil::upadteJeuFavoris($_SESSION['user']->slug, $slug_jeu, true);
+			}
+			else { // sinon => INSERT avec des null pour le classement et le score
+				Profil::insertJeuFavoris($_SESSION['user']->slug, $slug_jeu, true);
+			}
+			$this->view->display(); // on affiche la page avec le message de réussite
+		}
     }
 }
-- 
GitLab