From 56d7da2ce88c92e0e43c365a18397dd2ba988241 Mon Sep 17 00:00:00 2001 From: Kevin Monteiro Date: Mon, 15 Jan 2024 17:20:58 +0100 Subject: [PATCH] =?UTF-8?q?R=C3=A9solution=20de=20bug=20En=20savoir=20plus?= =?UTF-8?q?=20activit=C3=A9/analyse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/app/controller/AthleteController.php | 26 +++++++-- .../data/core/database/ActivityGateway.php | 6 ++ .../src/data/core/database/AnalyzeGateway.php | 9 ++- .../src/data/core/database/AnalyzeMapper.php | 57 ++++++++++--------- 4 files changed, 65 insertions(+), 33 deletions(-) diff --git a/Sources/src/app/controller/AthleteController.php b/Sources/src/app/controller/AthleteController.php index d7b2a71c..b76c1003 100644 --- a/Sources/src/app/controller/AthleteController.php +++ b/Sources/src/app/controller/AthleteController.php @@ -5,6 +5,7 @@ namespace App\Controller; use Database\ActivityGateway; use Database\ActivityMapper; use Database\AnalyzeGateway; +use Database\AnalyzeMapper; use Database\AthleteEntity; use Database\AthleteMapper; use Database\EntrainementGateway; @@ -125,15 +126,32 @@ class AthleteController extends BaseController } #[Route(path: '/analyze', name: 'analyze_details', methods: ['GET'])] - public function activityDetails(int $id): Response + public function activityDetails(): Response { try { // Utilisez $id pour récupérer les détails de l'activité depuis la base de données // $activityGateway = new ActivityGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); // $activityEntity = $activityGateway->getActivityById($id); // Assurez-vous d'avoir une méthode similaire dans votre gateway + //$user = getCurrentUser(); FAIRE AVEC RECUP DE CURRENT USER ID + //$athleteId = $user->getId(); + $athleteId = 1; + $activityGateway = new ActivityGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $listActivityId = $activityGateway->getActivityByAthleteId($athleteId); + + $listAnalyze = []; + + foreach ($listActivityId as $activityId) { + $analyzeGateway = new AnalyzeGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); + $analyzeSql = $analyzeGateway->getFrequenceCardiaqueByIdActivityAndCurrentAthlete($activityId, $athleteId); + $map = new AnalyzeMapper(); + $analyzeEntity = $map->analyzeSqlToEntity($analyzeSql); + foreach ($analyzeEntity as $analyze) { + $listAnalyze = ['idFc' => $analyze->getIdFc(), 'altitude' => $analyze->getAltitude()]; + } + } + + - $analyzeGateway = new AnalyzeGateway(new Connexion(DSN, DB_USER, DB_PASSWORD)); - $analyzeEntity = $analyzeGateway->getFrequenceCardiaqueByIdActivity($id); $response = $this->render('./page/analyze.html.twig', [ 'css' => $this->preference->getCookie(), @@ -142,7 +160,7 @@ class AthleteController extends BaseController 'role' => 'Athlete',//$currentUser->getRole(), 'friendship' => [], 'activity' => [], - 'analyzes' => $analyzeEntity, + 'analyzes' => $listAnalyze, ]); } catch (\Throwable $th) { throw $th; diff --git a/Sources/src/data/core/database/ActivityGateway.php b/Sources/src/data/core/database/ActivityGateway.php index 3d9e9564..aa3f9d9a 100644 --- a/Sources/src/data/core/database/ActivityGateway.php +++ b/Sources/src/data/core/database/ActivityGateway.php @@ -60,6 +60,12 @@ class ActivityGateway { return $this->connection->executeWithErrorHandling($query, $params); } + public function getActivityByAthleteId(int $athleteId){ + $query = "SELECT * FROM Activite WHERE athleteId = :athleteId"; + $params = [':athleteId' => [$athleteId, PDO::PARAM_INT]]; + return $this->connection->executeWithErrorHandling($query, $params); + } + public function addActivity(ActivityEntity $activity) { $query = "INSERT INTO Activite (type, date, heureDebut, heureDeFin, effortRessenti, variabilite, variance, ecartType, moyenne, maximum, minimum, temperatureMoyenne) VALUES (:type, :date, :heureDebut, :heureDeFin, :effortRessenti, :variabilite, :variance, :ecartType, :moyenne, :maximum, :minimum, :temperatureMoyenne)"; diff --git a/Sources/src/data/core/database/AnalyzeGateway.php b/Sources/src/data/core/database/AnalyzeGateway.php index 7dd7666a..34fd00a8 100644 --- a/Sources/src/data/core/database/AnalyzeGateway.php +++ b/Sources/src/data/core/database/AnalyzeGateway.php @@ -16,9 +16,16 @@ class AnalyzeGateway } public function getFrequenceCardiaqueByIdActivity(int $activityId) { - $query = "SELECT * FROM FrequenceCardiaque WHERE activiteid = :id"; + $query = "SELECT * FROM FrequenceCardiaque WHERE activiteId = :id"; $params = [':id' => $activityId]; return $this->connection->executeWithErrorHandling($query, $params); } + public function getFrequenceCardiaqueByIdActivityAndCurrentAthlete(int $activityId, int $athleteId) + { + $query = "SELECT * FROM FrequenceCardiaque WHERE activiteId = :id AND athleteId = :athleteId"; + $params = [':id' => $activityId, ':athleteId' => $athleteId]; + return $this->connection->executeWithErrorHandling($query, $params); + } + } \ No newline at end of file diff --git a/Sources/src/data/core/database/AnalyzeMapper.php b/Sources/src/data/core/database/AnalyzeMapper.php index 33077162..d7c1c0e6 100644 --- a/Sources/src/data/core/database/AnalyzeMapper.php +++ b/Sources/src/data/core/database/AnalyzeMapper.php @@ -73,34 +73,35 @@ class AnalyzeMapper /** * @throws \Exception */ -// public function ActivityEntityToModel(ActivityEntity $activiteEntity):Activity { -// $date = new DateTime($activiteEntity->getDate()); -// $heureDebut = new \DateTime($activiteEntity->getHeureDebut()); -// $heureFin = new \DateTime($activiteEntity->getHeureFin()); -// $effortRessenti = intval($activiteEntity->getEffortRessenti()); -// $variability = floatval($activiteEntity->getVariability()); -// $variance = floatval($activiteEntity->getVariance()); -// $ecartType = floatval($activiteEntity->getEcartType()); -// -// $act = new Activity( -// $activiteEntity->getIdActivity(), -// $activiteEntity->getType(), -// $date, -// $heureDebut, -// $heureFin, -// $effortRessenti, -// $variability, -// $variance, -// $ecartType, -// $activiteEntity->getMoyenne(), -// $activiteEntity->getMaximum(), -// $activiteEntity->getMinimum(), -// $activiteEntity->getTemperatureMoyenne(), -// 'false' -// ); -// -// return $act; -// } + public function analyzeEntityToModel(ActivityEntity $activiteEntity) { + $date = new DateTime($activiteEntity->getDate()); + $heureDebut = new \DateTime($activiteEntity->getHeureDebut()); + $heureFin = new \DateTime($activiteEntity->getHeureFin()); + $effortRessenti = intval($activiteEntity->getEffortRessenti()); + $variability = floatval($activiteEntity->getVariability()); + $variance = floatval($activiteEntity->getVariance()); + $ecartType = floatval($activiteEntity->getEcartType()); + + $act = new Activity( + $activiteEntity->getIdActivity(), + $activiteEntity->getType(), + $date, + $heureDebut, + $heureFin, + $effortRessenti, + $variability, + $variance, + $ecartType, + $activiteEntity->getMoyenne(), + $activiteEntity->getMaximum(), + $activiteEntity->getMinimum(), + $activiteEntity->getTemperatureMoyenne(), + 'false' + ); + + return $act; + } + //public function ActivityToEntity(Activity model): ActivityEntity; // public function activityToEntity( $act):ActivityEntity{