diff --git a/src/Gateway/UserGateway.php b/src/Gateway/UserGateway.php index 5a09f2d..cee829e 100644 --- a/src/Gateway/UserGateway.php +++ b/src/Gateway/UserGateway.php @@ -50,7 +50,6 @@ Class UserGateway extends Gateway{ ]); } - public function delete(string $id) : bool{ // supretion user @@ -58,6 +57,34 @@ Class UserGateway extends Gateway{ return $this->co->executeQuery($query,array(':id' => array($id,PDO::PARAM_STR))); } + public function inFavorite(string $username, int $idq):bool{ + $query = 'SELECT count(*) FROM Favorite f JOIN Users u ON f.users = u.id_user WHERE u.username = :user AND f.quote = :id'; + $this->co->executeQuery($query, array(':user'=>array($username, PDO::PARAM_STR),':id'=>array($idq, PDO::PARAM_INT))); + $result = $this->co->getResults(); + return ($result[0]['count'] >= 1); + } + + public function addFavorite(string $username, int $id){ + $query = 'INSERT INTO Favorite VALUES ((SELECT id_user FROM Users WHERE username = :username), :id)'; + $this->co->executeQuery($query, array(':username' => array($username,PDO::PARAM_STR), ':id' => array($id,PDO::PARAM_INT))); + $query = 'UPDATE Quote SET likes = (likes + 1) WHERE id_quote = :id'; + $this->co->executeQuery($query, array(':id' => array($id,PDO::PARAM_INT))); + } + + public function supFavorite(string $username, int $id){ + $query = 'SELECT id_user FROM Users WHERE username = :username'; + $this->co->executeQuery($query, array(':username' => array($username,PDO::PARAM_STR))); + $result = $this->co->getResults()[0]['id_user']; + var_dump($result); + var_dump($id); + $query = 'DELETE FROM Favorite WHERE users = :user AND quote = :id;'; + $this->co->executeQuery($query, array(':user' => array($result,PDO::PARAM_INT), ':id' => array($id,PDO::PARAM_INT))); + $query = 'UPDATE Quote SET likes = (likes - 1) WHERE id_quote = :id'; + $this->co->executeQuery($query, array(':id' => array($id,PDO::PARAM_INT))); + } + + // ===================== GET FUNCTION ===================== + public function getFavorite(string $id):array{ //obtention favoris d'un user @@ -67,6 +94,14 @@ Class UserGateway extends Gateway{ return $result; } + public function getIdUser(string $username):array{ + $query = 'SELECT id_user FROM Users WHERE username=:username'; + $this->co->executeQuery($query, array(':username'=>array($username, PDO::PARAM_STR))); + $result = $this->co->getResults(); + return $result; + } + + // ===================== FIND FUNCTION ===================== //obtenir les information d'un user public function findDataUser(int $id):array{ @@ -133,7 +168,6 @@ Class UserGateway extends Gateway{ return $this->co->getResults(); } - //Update Email public function updateEmail(string $username, string $newEmail):array{ //Update le email du user passé en paramètre @@ -148,7 +182,6 @@ Class UserGateway extends Gateway{ } - public function updateImg(string $username):array{ $id_image = $this->randomImg(); //Update l'image du user passé en paramètre @@ -167,42 +200,5 @@ Class UserGateway extends Gateway{ $query = 'UPDATE Users SET password=:newPassWd WHERE username=:username'; $this->co->executeQuery($query, array(':username'=>array($username, PDO::PARAM_STR), ':newPassWd'=> array($newPassWd, PDO::PARAM_STR))); } - - - - - - public function getIdUser(string $username):array{ - $query = 'SELECT id_user FROM Users WHERE username=:username'; - $this->co->executeQuery($query, array(':username'=>array($username, PDO::PARAM_STR))); - $result = $this->co->getResults(); - return $result; - } - - public function inFavorite(string $username, int $idq):bool{ - $query = 'SELECT count(*) FROM Favorite f JOIN Users u ON f.users = u.id_user WHERE u.username = :user AND f.quote = :id'; - $this->co->executeQuery($query, array(':user'=>array($username, PDO::PARAM_STR),':id'=>array($idq, PDO::PARAM_INT))); - $result = $this->co->getResults(); - return ($result[0]['count'] >= 1); - } - - public function addFavorite(string $username, int $id){ - $query = 'INSERT INTO Favorite VALUES ((SELECT id_user FROM Users WHERE username = :username), :id)'; - $this->co->executeQuery($query, array(':username' => array($username,PDO::PARAM_STR), ':id' => array($id,PDO::PARAM_INT))); - $query = 'UPDATE Quote SET likes = (likes + 1) WHERE id_quote = :id'; - $this->co->executeQuery($query, array(':id' => array($id,PDO::PARAM_INT))); - } - - public function supFavorite(string $username, int $id){ - $query = 'SELECT id_user FROM Users WHERE username = :username'; - $this->co->executeQuery($query, array(':username' => array($username,PDO::PARAM_STR))); - $result = $this->co->getResults()[0]['id_user']; - var_dump($result); - var_dump($id); - $query = 'DELETE FROM Favorite WHERE users = :user AND quote = :id;'; - $this->co->executeQuery($query, array(':user' => array($result,PDO::PARAM_INT), ':id' => array($id,PDO::PARAM_INT))); - $query = 'UPDATE Quote SET likes = (likes - 1) WHERE id_quote = :id'; - $this->co->executeQuery($query, array(':id' => array($id,PDO::PARAM_INT))); - } } ?> diff --git a/src/Model/UserModel.php b/src/Model/UserModel.php index ff1ec60..28f0c23 100644 --- a/src/Model/UserModel.php +++ b/src/Model/UserModel.php @@ -13,17 +13,21 @@ return $this->gateway->insertUser( $username, $email, $passwd, false, 1); } - public function getNumberOfUsers() : int - { - - return $this->gateway->getNumberOfUsers()[0]['count'] ?? 0; - } public function deleteUser(string $id) : bool{ return $this->gateway->delete($id); } + // ===================== Get FUNCTION ===================== + + public function getNumberOfUsers() : int + { + + return $this->gateway->getNumberOfUsers()[0]['count'] ?? 0; + } + + // public function getFavoriteUser(string $id) : array{ // $res[0] = array(); // $data = $this->gateway->getFavorite($id); @@ -76,6 +80,13 @@ return null; } + public function getIdByUsername(string $username){ + $res = $this->gateway->getIdUser($username); + return $res[0]['id_user']; + } + + // ===================== Bool FUNCTION ===================== + public function IsExisteUsername(string $username):bool{ return $this->gateway->IsExisteUsername($username); } @@ -90,7 +101,17 @@ return $hash !== null && password_verify($passWd, $hash); } + public function isFavorite(?string $username, int $idq): bool { + if($_SESSION["user"] == NULL){ + return false; + } + else{ + $res = $this->gateway->inFavorite($_SESSION["user"],$idq); + return $res; + } + } + // ===================== Set FUNCTION ===================== public function setUsername(string $username, string $newUsername): string { @@ -135,17 +156,8 @@ } - public function isFavorite(?string $username, int $idq): bool { - if($_SESSION["user"] == NULL){ - return false; - } - else{ - $res = $this->gateway->inFavorite($_SESSION["user"],$idq); - return $res; - } - } - + public function addFavorite(string $username, int $id){ $this->gateway->addFavorite($username,$id); } @@ -153,11 +165,6 @@ public function supFavorite(string $username, int $id){ $this->gateway->supFavorite($username,$id); } - - public function getIdByUsername(string $username){ - $res = $this->gateway->getIdUser($username); - return $res[0]['id_user']; - } } ?>