From cecf7461496fb94ceccb22365e49ae643cb9f768 Mon Sep 17 00:00:00 2001 From: Leni BEAULATON Date: Tue, 12 Nov 2024 09:56:57 +0100 Subject: [PATCH] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20'src/Gateway/userGa?= =?UTF-8?q?teway.php'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Gateway/userGateway.php | 119 ++++++++++++++++++++++++++++-------- 1 file changed, 92 insertions(+), 27 deletions(-) diff --git a/src/Gateway/userGateway.php b/src/Gateway/userGateway.php index 4760260..1ba5805 100644 --- a/src/Gateway/userGateway.php +++ b/src/Gateway/userGateway.php @@ -11,31 +11,26 @@ Class UserGateway{ public function insert(string $username,string $email,string $passwd):string{ - // récupération id - $query='SELECT id_user FROM Users WHERE id_user >= ALL (SELECT id_user FROM Users);'; - $this->con->executeQuery($query); - $result=$this->con->getResults(); - foreach($result as $row){ - $id=$row['id_user'] + 1; - } + //crypte passeword + $passwordEncrypted = crypt($passwd); // insertion user - $query='INSERT INTO Users VALUES (:id,:username,:email,:passwd,CURRENT_DATE,false);'; - $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR),':username' => array($u->username,PDO::PARAM_STR),':email' => array($u->email,PDO::PARAM_STR),':passwd' => array($u->passwd,PDO::PARAM_STR))); + $query='INSERT INTO Users VALUES (:username,:email,:passwd,CURRENT_DATE,false);'; + $this->con->executeQuery($query,array(':username' => array($u->username,PDO::PARAM_STR),':email' => array($u->email,PDO::PARAM_STR),':passwd' => array($u->passwordEncrypted,PDO::PARAM_STR))); return $id; } public function delete(string $id) : bool{ - // supretion user + // suppression user $query='DELETE FROM Users WHERE id_user = :id;'; - return $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR))); + return $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); } public function getFavorite(string $id):array{ //obtention favoris d'un user $query='SELECT * FROM Quote WHERE id_quote IN (SELECT id_quote IN Favorite f JOIN User u ON u.id_user = f.user WHERE id_user = :id);'; - $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR))); + $this->con->executeQuery($query,array(':id' => array($id,PDO::PARAM_INT))); $result=$this->con->getResults(); return $result; } @@ -44,32 +39,101 @@ Class UserGateway{ //obtenir les information d'un user public function findDataUser(int $id):array{ $query = 'SELECT * FROM Users WHERE id_user=:idUser'; - $con->executeQuery($query, array(':idUser'=>array($id, PDO::PARAM_STR))); + $con->executeQuery($query, array(':idUser'=>array($id, PDO::PARAM_INT))); $result = $con->getResults(); return $result; } + public function createQuote(int $id, string $content, string $langue, string $caracter, string $source):array{ + + //recupère id du personnage + $queryCaracter = "SELECT id_caracter FROM Caracter WHERE caracter =:caracter"; + $con->executeQuery($queryCaracter, array( + ':caracter'=>array($caracter, PDO::PARAM_STR) + )); + $resultCaracter = $con->getResult(); + + if($resultCaracter == NULL){ + //ajout creationCaracter + } + + //recupère id de la source + $querySource = "SELECT id_source FROM Source WHERE title =:source"; + $con->executeQuery($querySource, array( + ':source'=>array($source, PDO::PARAM_STR) + )); + $resultSource = $con->getResult(); + + if($resultSource == NULL){ + //ajout creationSource + } + $queryInsert = "INSERT INTO Quote (content, langue, id_caracter, id_source, id_user_verif) VALUES (:content, :langue, :caracter, :source, :idverif)"; + $con->executeQuery($queryInsert, array( + ':content'=>array($content, PDO::PARAM_STR), + ':langue'=>array($langue, PDO::PARAM_STR), + ':caracter'=>array($resultCaracter, PDO::PARAM_STR), + ':source'=>array($resultSource, PDO::PARAM_STR), + ':idverif'=>array($id, PDO::PARAM_INT) + )); + } + + + + public function createCaracter(string $caracter, string $img):array{ + //creation du personnage + $queryCaracter = "INSERT INTO Caracter(caracter, img_path) VALUES (:caracter, :img)"; + $con->executeQuery($queryCaracter, array( + ':caracter'=>array($caracter, PDO::PARAM_STR), + 'img'=>array($img, PDO::PARAM_STR) + )); + + //récuperation de id caracter + $queryCaracter = "SELECT id_caracter FROM Caracter WHERE caracter =:caracter"; + $con->executeQuery($queryCaracter, array( + ':caracter'=>array($caracter, PDO::PARAM_STR) + )); + $resultCaracter = $con->getResult(); + } + + + + public function createSource(string $title, string $dateS):array{ + //creation du personnage + $querySource = "INSERT INTO Source(title, dateS) VALUES (:title, :dateS)"; + $con->executeQuery($querySource, array( + ':title'=>array($title, PDO::PARAM_STR), + 'dateS'=>array($dateS, PDO::PARAM_STR) + )); + + //recupère id de la source + $querySource = "SELECT id_source FROM Source WHERE title =:source"; + $con->executeQuery($querySource, array( + ':source'=>array($source, PDO::PARAM_STR) + )); + $querySource = $con->getResult(); + } + // ===================== UPDATE FUNCTION ===================== public function updateUsername(int $id, string $newUsername):array{ //Update le nom du user passé en paramètre $queryUpdate = 'UPDATE Users SET username=:newUsername WHERE id_user=:idUser'; - $con->executeQuery($queryUpdate, array(':idUser'=>array($id, PDO::PARAM_STR), ':newUsername'=> array($newUsername, PDO::PARAM_STR))); + $con->executeQuery($queryUpdate, array(':idUser'=>array($id, PDO::PARAM_INT), ':newUsername'=> array($newUsername, PDO::PARAM_STR))); //Renvoie le nouveau nom du user $queryReponse = 'SELECT username FROM Users WHERE id_user=:idUser'; - $con->executeQuery($queryReponse, array($id=>array($newUsername, PDO::PARAM_STR))); + $con->executeQuery($queryReponse, array($id=>array($id, PDO::PARAM_INT))); return $result; } public function updateEmail(int $id, string $newEmail):array{ //Update le email du user passé en paramètre $queryUpdate = 'UPDATE Users SET email=:newEmail WHERE id_user=:idUser'; - $con->executeQuery($queryUpdate, array(':idUser'=>array($id, PDO::PARAM_STR), ':newEmail'=> array($newEmail, PDO::PARAM_STR))); + $con->executeQuery($queryUpdate, array(':idUser'=>array($id, PDO::PARAM_INT), ':newEmail'=> array($newEmail, PDO::PARAM_STR))); //Renvoie le nouveau email du user $queryReponse = 'SELECT email FROM Users WHERE id_user=:idUser'; - $con->executeQuery($queryReponse, array(':idUser'=>array($id, PDO::PARAM_STR))); + $con->executeQuery($queryReponse, array(':idUser'=>array($id, PDO::PARAM_INT))); $result = $con->getResults(); return $result; } @@ -77,29 +141,30 @@ Class UserGateway{ public function updateImg(int $id, int $newImg):array{ //Update l'image du user passé en paramètre $query = 'UPDATE Users SET img=:newImg WHERE id_user=:idUser'; - $con->executeQuery($query, array(':idUser'=>array($id, PDO::PARAM_STR), ':newImg'=> array($newImg, PDO::PARAM_STR))); + $con->executeQuery($query, array(':idUser'=>array($id, PDO::PARAM_INT), ':newImg'=> array($newImg, PDO::PARAM_STR))); //Renvoie la nouvelle image du user $queryReponse = 'SELECT img FROM Users WHERE id_user=:idUser'; - $con->executeQuery($queryReponse, array(':idUser'=>array($id, PDO::PARAM_STR))); + $con->executeQuery($queryReponse, array(':idUser'=>array($id, PDO::PARAM_INT))); $result = $con->getResults(); return $result; } public function updatePasswd(int $id, string $newPassWd):array{ - //Update le passwd du user passé en paramètre - $query = 'UPDATE Users SET pssword=:newPassWd WHERE id_user=:idUser'; - $con->executeQuery($query, array(':idUser'=>array($id, PDO::PARAM_STR), ':newPassWd'=> array($newPassWd, PDO::PARAM_STR))); - //Renvoie le nouveau passwd du user - $queryReponse = 'SELECT pssword FROM Users WHERE id_user=:idUser'; - $con->executeQuery($queryReponse, array(':idUser'=>array($id, PDO::PARAM_STR))); - $result = $con->getResults(); - return $result; + //crypte le mot de passe + $passwordEncrypted = crypt($newPassWd); + + //Update le passwd du user passé en paramètre + $query = 'UPDATE Users SET password=:newPassWd WHERE id_user=:idUser'; + $con->executeQuery($query, array(':idUser'=>array($id, PDO::PARAM_INT), ':newPassWd'=> array($passwordEncrypted, PDO::PARAM_STR))); } } + + + $uG = new UserGateway(new Connection("pgsql:host=londres;dbname=dblebeaulato","lebeaulato","")); ?>