From 1aa8dcc9fa92eb193aac70ccc3a0a6e6f75b328c Mon Sep 17 00:00:00 2001 From: palevrault Date: Wed, 6 Dec 2023 15:19:37 +0100 Subject: [PATCH 1/5] test --- .../src/app/controller/AthleteController.php | 51 +++++++++---------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index e3ec496d..b79c76de 100644 --- a/Sources/src/app/controller/AthleteController.php +++ b/Sources/src/app/controller/AthleteController.php @@ -3,13 +3,6 @@ namespace App\Controller; namespace App\Controller; -use App\Container; -use App\Router\Request\IRequest; -use App\Router\Response\Response; -use Shared\Attributes\Route; -use Twig\Environment; -use Data\Core\Preferences; -use Shared\Log; use App\Container; use App\Router\Request\IRequest; use App\Router\Response\Response; @@ -48,28 +41,30 @@ class AthleteController extends BaseController 'username' => 'alicesmith', ], ]; - // if(!Validation::val_string($name)){ + if(!Validation::val_string($username)){ + print("Nom invalide."); + } try { - //code... - // $model->userMgr->getUser($name); - return $this->render('./page/addfriend.html.twig',[ - 'css' => $this->preference->getCookie(), - 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", - 'friendship' => [], - 'analyzes' => [], - 'mails' => [], - 'users' => $utiliArray, - 'infoUser' => [], - 'exos' => [], - 'member' => [], - 'responce' => "Notification d'ajout envoyée à $username" - ]); - } catch (\Throwable $th) { - //throw $th; - // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); - } + $listUser=$this->container->get(UserManager::class)->searchItemsByName($username); + $currentUser=$this->container->get(UserManager::class)->getCurrentUser(); + return $this->render('./page/addfriend.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => $currentUser->getUsername(), + 'role' => $currentUser->getRole(), + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => $listUser, + 'infoUser' => [], + 'exos' => [], + 'member' => [], + 'responce' => "Notification d'ajout envoyée à $username" + ]); + } catch (\Throwable $th) { + //throw $th; + // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + } // } } From 24919e6ba5e71280e9a39657c36f48b31dcb5e5e Mon Sep 17 00:00:00 2001 From: palevrault Date: Thu, 7 Dec 2023 15:31:49 +0100 Subject: [PATCH 2/5] La recherche de users fonctionne --- .../src/app/controller/AthleteController.php | 39 +++++++++++-------- .../src/data/model/manager/UserManager.php | 1 + .../data/stub/repository/UserRepository.php | 1 + 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index b79c76de..782e26a2 100644 --- a/Sources/src/app/controller/AthleteController.php +++ b/Sources/src/app/controller/AthleteController.php @@ -3,6 +3,7 @@ namespace App\Controller; namespace App\Controller; +use Shared\Validation; use App\Container; use App\Router\Request\IRequest; use App\Router\Response\Response; @@ -10,12 +11,13 @@ use Shared\Attributes\Route; use Twig\Environment; use Data\Core\Preferences; use Shared\Log; +use Manager\UserManager; class AthleteController extends BaseController { private Environment $twig; - private Preferences $preference; + protected Preferences $preference; public function __construct() { @@ -41,31 +43,36 @@ class AthleteController extends BaseController 'username' => 'alicesmith', ], ]; - if(!Validation::val_string($username)){ - print("Nom invalide."); - } - try { - $listUser=$this->container->get(UserManager::class)->searchItemsByName($username); - $currentUser=$this->container->get(UserManager::class)->getCurrentUser(); - return $this->render('./page/addfriend.html.twig',[ - 'css' => $this->preference->getCookie(), + //if(!Validation::val_string($username)){ + // print("Nom invalide."); + //} + //try { + $listSearch=$this->container->get(UserManager::class)->searchUsersByName($username); + $i=0; + foreach ($listSearch as $user){ + $listUsers[$i++]=['nom' => $user->getNom(), 'prenom'=>$user->getPrenom(), 'img'=>'john_doe', 'username'=>$user->getUsername()]; + } + //$currentUser=$this->container->get(UserManager::class)->getCurrentUser(); + //$currentUser=$_SESSION['user']; + $response = $this->render('./page/addfriend.html.twig',[ + 'css' => $_COOKIE['preferences'], 'pp' => "test2", - 'user' => $currentUser->getUsername(), - 'role' => $currentUser->getRole(), + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], - 'users' => $listUser, + 'users' => $listUsers, 'infoUser' => [], 'exos' => [], - 'member' => [], - 'responce' => "Notification d'ajout envoyée à $username" + 'member' => [] ]); - } catch (\Throwable $th) { + //} catch (\Throwable $th) { //throw $th; // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); - } + //} // } + return $response; } diff --git a/Sources/src/data/model/manager/UserManager.php b/Sources/src/data/model/manager/UserManager.php index c6e71e82..8520316d 100644 --- a/Sources/src/data/model/manager/UserManager.php +++ b/Sources/src/data/model/manager/UserManager.php @@ -39,6 +39,7 @@ class UserManager $this->relationshipService = $relationshipService; } + public function getCurrentUser(): ?User { return $this->currentUser; diff --git a/Sources/src/data/stub/repository/UserRepository.php b/Sources/src/data/stub/repository/UserRepository.php index 73344b65..dd0b47f7 100644 --- a/Sources/src/data/stub/repository/UserRepository.php +++ b/Sources/src/data/stub/repository/UserRepository.php @@ -32,6 +32,7 @@ class UserRepository implements IUserRepository { $this->users[] = new User(3, "Martin", "Paul","Martin", "paul.martin@example.com", "super789", 'M', 1.75, 68, new \DateTime("1988-08-20"), new CoachAthlete()); $this->users[] = new User(4, "Brown", "Anna","Brown", "anna.brown@example.com", "test000", 'F', 1.70, 58, new \DateTime("1992-11-25"), new Athlete()); $this->users[] = new User(5, "Lee", "Bruce","Lee", "bruce.lee@example.com", "hello321", 'M', 1.72, 70, new \DateTime("1970-02-05"), new Athlete()); + $this->users[] = new User(5, "Truc", "Bruce","Truc", "bruce.lee@example.com", "hello321", 'M', 1.72, 70, new \DateTime("1970-02-05"), new Athlete()); } /** From 661b9c80cfbf4352cba2e88800196c36fc65bbeb Mon Sep 17 00:00:00 2001 From: palevrault Date: Tue, 12 Dec 2023 09:15:55 +0100 Subject: [PATCH 3/5] athlete controller quasi fini --- .../src/app/controller/AthleteController.php | 208 ++++++------------ 1 file changed, 70 insertions(+), 138 deletions(-) diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index 782e26a2..91c9d6af 100644 --- a/Sources/src/app/controller/AthleteController.php +++ b/Sources/src/app/controller/AthleteController.php @@ -21,7 +21,7 @@ class AthleteController extends BaseController public function __construct() { - session_start(); + //session_start(); $this->preference = new Preferences(); } @@ -29,49 +29,30 @@ class AthleteController extends BaseController public function searchUser(string $username, IRequest $req): Response { $taberror = []; - $utiliArray = [ - [ - 'nom' => 'John', - 'prenom' => 'Doe', - 'img' => 'john_doe', - 'username' => 'johndoe', - ], - [ - 'nom' => 'Alice', - 'prenom' => 'Smith', - 'img' => 'alice_smith', - 'username' => 'alicesmith', - ], - ]; - //if(!Validation::val_string($username)){ - // print("Nom invalide."); - //} - //try { - $listSearch=$this->container->get(UserManager::class)->searchUsersByName($username); - $i=0; - foreach ($listSearch as $user){ - $listUsers[$i++]=['nom' => $user->getNom(), 'prenom'=>$user->getPrenom(), 'img'=>'john_doe', 'username'=>$user->getUsername()]; + if(!Validation::val_string($username)){ + print("Nom invalide."); + } + else { + try { + $listSearch=$this->container->get(UserManager::class)->searchUsersByName($username); + $i=0; + foreach ($listSearch as $user){ + $listUsers[$i++]=['nom' => $user->getNom(), 'prenom'=>$user->getPrenom(), 'img'=>'john_doe', 'username'=>$user->getUsername()]; + } + //$currentUser=$this->container->get(UserManager::class)->getCurrentUser(); + //$currentUser=$_SESSION['user']; + $response = $this->render('./page/addfriend.html.twig',[ + 'css' => $_COOKIE['preferences'], + 'pp' => "test", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'users' => $listUsers + ]); + } catch (\Throwable $th) { + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); } - //$currentUser=$this->container->get(UserManager::class)->getCurrentUser(); - //$currentUser=$_SESSION['user']; - $response = $this->render('./page/addfriend.html.twig',[ - 'css' => $_COOKIE['preferences'], - 'pp' => "test2", - 'user' => 'johndoe',//$currentUser->getUsername(), - 'role' => 'Athlete',//$currentUser->getRole(), - 'friendship' => [], - 'analyzes' => [], - 'mails' => [], - 'users' => $listUsers, - 'infoUser' => [], - 'exos' => [], - 'member' => [] - ]); - //} catch (\Throwable $th) { - //throw $th; - // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); - //} - // } + } return $response; } @@ -82,8 +63,8 @@ class AthleteController extends BaseController return $this->render('./page/analyze.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], @@ -99,9 +80,9 @@ class AthleteController extends BaseController { return $this->render('./page/activity.html.twig',[ 'css' => $this->preference->getCookie(), - 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'pp' => "test", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], @@ -119,8 +100,8 @@ class AthleteController extends BaseController return $this->render('./page/exercice.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], @@ -139,14 +120,14 @@ class AthleteController extends BaseController 'date' => $date, 'type' => $type, 'intensite' => $intensite, - 'status' => 'A venur', + 'status' => 'A venir', ] ]; return $this->render('./page/exercice.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], @@ -160,83 +141,55 @@ class AthleteController extends BaseController #[Route(path: '/add-friend', name: 'add-friend', methods: ['POST'])] public function addFriend(string $username, IRequest $req): Response { - $taberror = []; - $utiliArray = [ - [ - 'nom' => 'John', - 'prenom' => 'Doe', - 'img' => 'john_doe', - 'username' => 'johndoe', - ], - [ - 'nom' => 'Alice', - 'prenom' => 'Smith', - 'img' => 'alice_smith', - 'username' => 'alicesmith', - ], - ]; - // if(!Validation::val_string($name)){ try { - //code... - // $model->userMgr->addFriend($name); - return $this->render('./page/addfriend.html.twig',[ - 'css' => $this->preference->getCookie(), - 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", - 'friendship' => [], - 'analyzes' => [], - 'mails' => [], - 'users' => $utiliArray, - 'infoUser' => [], - 'exos' => [], - 'member' => [], - 'responce' => "Notification d'ajout envoyée à $username" - ]); - } catch (\Throwable $th) { - //throw $th; - // return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + //Ajouter la personne sur laquelle on a clique dans la liste de currentuser + $listSearch=$this->container->get(UserManager::class)->searchUsersByName($username); + $i=0; + foreach ($listSearch as $user){ + $listUsers[$i++]=['nom' => $user->getNom(), 'prenom'=>$user->getPrenom(), 'img'=>'test', 'username'=>$user->getUsername()]; } - // } - + return $this->render('./page/addfriend.html.twig',[ + 'css' => $this->preference->getCookie(), + 'pp' => "test2", + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'friendship' => [], + 'analyzes' => [], + 'mails' => [], + 'users' => $listUsers, + 'infoUser' => [], + 'exos' => [], + 'member' => [], + 'responce' => "Notification d'ajout envoyée à $username" + ]); + } catch (\Throwable $th) { + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); + } } #[Route(path: '/friend', name: 'friend', methods: ['GET'])] public function friend(): Response { - $utiliArray = [ - [ - 'nom' => 'John', - 'prenom' => 'Doe', - 'img' => 'john_doe', - 'username' => 'johndoe', - ], - [ - 'nom' => 'Alice', - 'prenom' => 'Smith', - 'img' => 'alice_smith', - 'username' => 'alicesmith', - ], - ]; return $this->render('./page/addfriend.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", + 'user' => 'John',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'analyzes' => [], 'mails' => [], - 'users' => $utiliArray, + 'users' => [], 'infoUser' => [], 'exos' => [], 'member' => [], ]); } - #[Route(path: '/friendlist', name: 'friendlist', methods: ['POST'])] + /*#[Route(path: '/friendlist', name: 'friendlist', methods: ['POST'])] public function friendlist(string $username, IRequest $req): Response { - $utiliArray = [ + $friendList = [ [ 'nom' => 'John', 'prenom' => 'Doe', @@ -250,50 +203,29 @@ class AthleteController extends BaseController 'username' => 'alicesmith', ], ]; - /* TODO */ + // TODO // -> Enlever ou bloquer un utilisateur en fonction de son username - + //$friendList = currentUser->getFriends(); return $this->render('./page/friend.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", - 'user' => "Doe", - 'role' => "Athlète", - 'friendship' => $utiliArray, - 'analyzes' => [], - 'mails' => [], - 'users' => [], - 'infoUser' => [], - 'exos' => [], - 'member' => [], + 'user' => 'johndoe',//$currentUser->getUsername(), + 'role' => 'Athlete',//$currentUser->getRole(), + 'friendship' => $friendList, ]); - } + }*/ #[Route(path: '/friendlist', name: 'friendlist2', methods: ['GET'])] public function friendlist2(): Response { - $utiliArray = [ - [ - 'nom' => 'John', - 'prenom' => 'Doe', - 'img' => 'test', - 'status' => 'johndoe', - 'username' => 'jdoe', - ], - [ - 'nom' => 'Alice', - 'prenom' => 'Smith', - 'img' => 'test2', - 'status' => 'alicesmith', - 'username' => 'asmith', - ], - ]; + $friendList = $this->container->get(UserManager::class)->getFriends();//$currentUser->getFriends(); return $this->render('./page/friend.html.twig',[ 'css' => $this->preference->getCookie(), 'pp' => "test2", 'user' => "Doe", 'role' => "Athlète", - 'friendship' => $utiliArray, + 'friendship' => $friendList, 'analyzes' => [], 'mails' => [], 'users' => [], From 9ee8e9006551eee4cfb9973cdb10df108c30f398 Mon Sep 17 00:00:00 2001 From: palevrault Date: Tue, 12 Dec 2023 15:08:11 +0100 Subject: [PATCH 4/5] Truc de test --- .../data/stub/repository/UserRepository.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Sources/src/data/stub/repository/UserRepository.php b/Sources/src/data/stub/repository/UserRepository.php index dd0b47f7..948ce9d1 100644 --- a/Sources/src/data/stub/repository/UserRepository.php +++ b/Sources/src/data/stub/repository/UserRepository.php @@ -164,6 +164,30 @@ class UserRepository implements IUserRepository { return false; } + /** + * Supprime un utilisateur du dépôt. + * + * @param User $username Le username de la personne qui recherche ses amis. + * @return bool Retourne la liste des amis de l'utilisateur passe en paramètre. + */ + //TODO + public function getFriends(): array { + return [ + [ + 'nom' => 'John', + 'prenom' => 'Doe', + 'img' => 'test', + 'username' => 'johndoe', + ], + [ + 'nom' => 'Alice', + 'prenom' => 'Smith', + 'img' => 'test2', + 'username' => 'alicesmith', + ], + ]; + } + public function addFriend(int $user1, int $user2) { return true; From aa49d0960ab0436f49736de48b41ced08bf6c223 Mon Sep 17 00:00:00 2001 From: palevrault Date: Tue, 12 Dec 2023 15:10:48 +0100 Subject: [PATCH 5/5] Un autre truc --- .../src/data/model/manager/UserManager.php | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Sources/src/data/model/manager/UserManager.php b/Sources/src/data/model/manager/UserManager.php index 8520316d..8d6e2b5b 100644 --- a/Sources/src/data/model/manager/UserManager.php +++ b/Sources/src/data/model/manager/UserManager.php @@ -133,9 +133,23 @@ class UserManager { return $this->dataManager->userRepository->getItemsByName($name, 0, 10); } - - public function getFriends(): array{ - return $this->currentUser->getRole()->getUsersList(); + + public function getFriends(): array { + return [ + [ + 'nom' => 'John', + 'prenom' => 'Doe', + 'img' => 'test', + 'username' => 'johndoe', + ], + [ + 'nom' => 'Alice', + 'prenom' => 'Smith', + 'img' => 'test2', + 'username' => 'alicesmith', + ], + ]; + //return $this->currentUser->getRole()->getUsersList(); } // NEED TO PERSIST