diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index e3ec496d..91c9d6af 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,23 +11,17 @@ 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; -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() { - session_start(); + //session_start(); $this->preference = new Preferences(); } @@ -34,43 +29,31 @@ 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($name)){ - 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" + 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 ]); + throw $th; + return $this->render("addfriend.html.twig", ['tabError' => $taberror ]); } - // } + } + return $response; } @@ -80,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' => [], @@ -97,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' => [], @@ -117,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' => [], @@ -137,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' => [], @@ -158,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', @@ -248,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' => [], diff --git a/Sources/src/data/model/manager/UserManager.php b/Sources/src/data/model/manager/UserManager.php index c6e71e82..8d6e2b5b 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; @@ -132,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 diff --git a/Sources/src/data/stub/repository/UserRepository.php b/Sources/src/data/stub/repository/UserRepository.php index 73344b65..948ce9d1 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()); } /** @@ -163,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;