Réorganisation fichier user

pull/25/head
Leni BEAULATON 4 months ago
parent ce29030d46
commit fd5786c5b6

@ -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)));
}
}
?>

@ -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'];
}
}
?>

Loading…
Cancel
Save