diff --git a/Source/API/script/Gateway/GatewayListResponseOfCandidate.php b/Source/API/script/Gateway/GatewayListResponseOfCandidate.php index f033b69..902f792 100644 --- a/Source/API/script/Gateway/GatewayListResponseOfCandidate.php +++ b/Source/API/script/Gateway/GatewayListResponseOfCandidate.php @@ -5,15 +5,36 @@ namespace API\script\Gateway; use API\script\Config\Connection; use PDO; +/** + * Permet d'accéder, d'écrire ou de modifier les données contenues dans la table PossibleResponse + * afin de gérer la liste des réponses et les catégories associer d'un candidat. + */ class GatewayListResponseOfCandidate { + /** + * @var Connection + */ private Connection $connection; + /** + * + */ public function __construct() { $this->connection = connect(); } + /** + * Permet de récupérer la liste détaillée des réponses avec leurs catégories associer + * aux différentes questions qu'un candidat cible a répondu + * + * @param int $idListResponse Id du candidat pour lequel on veut récupérer ses réponses + * + * @return array Retourne une liste qui pour + * l'indice 0 a la liste des infos du candidat + * l'indice 1 la liste des réponses + * l'indice 2 une liste de liste de catégories, qui pour chaque même indice correspont à la liste des catégories de la réponse + */ public function getDetailsListResponsesOfCandidate(int $idListResponse) { $gatewayResponse = new GatewayResponse(); @@ -36,6 +57,11 @@ class GatewayListResponseOfCandidate return array($questionList, $responses, $tabKeywords); } + /** + * Permet de récupérer la liste des personnes ayant répondu aux formulaire + * + * @return array Retourne la liste brute des informations de tous les candidats ayant répondu au formulaire + */ public function getAllListResponsesOfCandidate(): array { $query = "SELECT * FROM ListResponsesOfCandidate"; @@ -44,7 +70,14 @@ class GatewayListResponseOfCandidate return $this->connection->getResults(); } - public function deleteListResponseOfCandidate($id): void + /** + * Permet de supprimer la liste des réponses d'un candidat de la base de donnée + * + * @param int $id Id du candidat à supprimer + * + * @return void + */ + public function deleteListResponseOfCandidate(int $id): void { $gatewayResponse = new GatewayResponse(); @@ -54,11 +87,22 @@ class GatewayListResponseOfCandidate $query = "DELETE FROM ListResponsesOfCandidate WHERE id = :id"; $this->connection->executeQuery($query, array( - 'id' => array($id, PDO::PARAM_STR) + 'id' => array($id, PDO::PARAM_INT) )); } - public function insertListResponsesOfCandidate($id, $answer, $category, $titleForm) + /** + * Permet d'insérer dans la base de données les réponses aux questions d'un candidat + * ainsi que les catégories associées à chaque réponse + * + * @param array $id Liste des id des questions répondue + * @param array $answer Liste des réponses à chaque question + * @param array $category Liste des catégories attribuées à chaque réponse + * @param string $titleForm Titre du formulaire + * + * @return void + */ + public function insertListResponsesOfCandidate(array $id, array $answer, array $category, string $titleForm): void { $gatewayResponse = new GatewayResponse(); $gatewayQuestion = new GatewayQuestion(); diff --git a/Source/API/script/Gateway/GatewayPossibleResponse.php b/Source/API/script/Gateway/GatewayPossibleResponse.php index 58956d8..7f3280d 100644 --- a/Source/API/script/Gateway/GatewayPossibleResponse.php +++ b/Source/API/script/Gateway/GatewayPossibleResponse.php @@ -5,15 +5,31 @@ namespace API\script\Gateway; use API\script\Config\Connection; use PDO; +/** + * Permet d'accéder, d'écrire ou de modifier les données contenues dans la table PossibleResponse. + */ class GatewayPossibleResponse { + /** + * @var Connection + */ private Connection $connection; + /** + * + */ public function __construct() { $this->connection = connect(); } + /** + * Permet de récupérer les différentes réponses possibles à une question donnée. + * + * @param string $idQuestion Id de la question pour laquelle on veut récupérer les réponses possibles + * + * @return array Retourne la liste de possibles réponses + */ public function getPossibleResponseByQuestion(string $idQuestion): array { $query = "SELECT pr.* FROM Propose p, PossibleResponse pr @@ -25,6 +41,12 @@ class GatewayPossibleResponse return $this->connection->getResults(); } + /** + * Permet d'insérer une possible réponse dans la base de donnée. + * + * @param string $contentPossibleResponse Contenu de la possible réponse + * @return int + */ public function insertPossibleResponse(string $contentPossibleResponse): int { $query = "INSERT INTO PossibleResponse(content) VALUES(:content)"; @@ -34,4 +56,24 @@ class GatewayPossibleResponse return $this->connection->lastInsertId(); } + + /** + * Permet de supprimer une possible réponse de la base de donnée par son id. + * + * @param int $id Id de la possible réponse à supprimer + * + * @return void + */ + public function deletePossibleResponse(int $id): void + { + $query = "DELETE FROM Reference WHERE response = :id"; + $this->connection->executeQuery($query, array( + ':id' => array($id, PDO::PARAM_INT) + )); + + $query = "DELETE FROM PossibleResponse WHERE id = :id"; + $this->connection->executeQuery($query, array( + ':id' => array($id, PDO::PARAM_INT) + )); + } } diff --git a/Source/API/script/Gateway/GatewayQuestion.php b/Source/API/script/Gateway/GatewayQuestion.php index 643c7b8..fc4e768 100644 --- a/Source/API/script/Gateway/GatewayQuestion.php +++ b/Source/API/script/Gateway/GatewayQuestion.php @@ -8,15 +8,33 @@ use BusinessClass\Question; use BusinessClass\TextQuestion; use PDO; +/** + * Permet d'accéder, d'écrire ou de modifier les données contenues dans la table Question + * afin de rendre le formulaire modulable. + */ class GatewayQuestion { + /** + * @var Connection + */ private Connection $connection; + /** + * + */ public function __construct() { $this->connection = connect(); } + /** + * Permet d'ajouter une question dans la base de donnée. + * + * @param Question $question Information sur la question ajouter + * @param int $idForm Id du formulaire associer + * + * @return int Id de la question ajouté en base + */ public function addQuestion(Question $question, int $idForm): int { $query = "INSERT INTO Question(content, type, form) VALUES(:content, :type, :form)"; @@ -29,6 +47,15 @@ class GatewayQuestion return $this->connection->lastInsertId(); } + /** + * Ajoute une possible réponse à une question cible et associe à la possible réponse des catégories. + * + * @param string $response Contenu de la réponse possible + * @param array $categories Liste des catégories attribuées à la possible réponse + * @param int $idQuestion Id de la question associée à cette possible réponse + * + * @return int Retourne l'id de la possible réponse insérée en base + */ public function insertResponseInQuestion(string $response, array $categories, int $idQuestion): int { $gatewayPossibleResponse = new GatewayPossibleResponse(); @@ -49,6 +76,13 @@ class GatewayQuestion return $idQuestion; } + /** + * Permet de supprimer une question dans la base ainsi que ses dépendances + * + * @param Question $question Information de la question à supprimer + * + * @return void + */ public function deleteQuestion(Question $question): void { if (get_class($question) == BoxQuestion::class) { @@ -59,15 +93,8 @@ class GatewayQuestion $listPossibleResponse = $question->getPossibleResponses(); for ($i = 0; $i < count($listPossibleResponse); $i++) { - $query = "DELETE FROM Reference WHERE response = :id"; - $this->connection->executeQuery($query, array( - ':id' => array($listPossibleResponse[$i]->getId(), PDO::PARAM_INT) - )); - - $query = "DELETE FROM PossibleResponse WHERE id = :id"; - $this->connection->executeQuery($query, array( - ':id' => array($listPossibleResponse[$i]->getId(), PDO::PARAM_INT) - )); + $gatewayPossibleResponse = new GatewayPossibleResponse(); + $gatewayPossibleResponse->deletePossibleResponse($listPossibleResponse[$i]->getId()); } } @@ -77,6 +104,13 @@ class GatewayQuestion )); } + /** + * Permet de modifier dans la base de données les informations de la question. + * + * @param Question $question Question modifier à changer en base + * + * @return void + */ public function updateQuestion(Question $question): void { $query = "UPDATE Question SET content = :content, type = :type, form = :frm WHERE id = :id"; @@ -88,6 +122,18 @@ class GatewayQuestion )); } + /** + * Permet de récupérer toutes les questions, possibles réponses et catégories associées d'un formualire cible. + * + * @param string $idForm Id du formulaire + * + * @return array Retourne une liste qui pour + * l'indice 0 la liste des questions + * l'indice 1 une liste de liste de réponses, qui pour chaque même indice correspond à la liste des réponses possibles de la question + * l'indice 2 une liste de liste de liste de catégories qui pour chaque indice de questions, + * on a une liste de liste de catégories qui pour chaque indice de réponses est associer une liste de catégories + * Ou vide s'il n'y a pas de question dans la base + */ public function getAllQuestions(string $idForm): array { $query = "SELECT * FROM Question WHERE form = :fom"; @@ -128,6 +174,13 @@ class GatewayQuestion return array(); } + /** + * Permet de récupérer le contenu d'une réponse à une question par son id. + * + * @param string $id Id de la question cible + * + * @return string Retourne le contenu de la question ciblé + */ public function getQuestionContentById(string $id): string { $query = "SELECT content FROM Question WHERE id = :id"; diff --git a/Source/BusinessClass/CheckBoxQuestion.php b/Source/BusinessClass/CheckBoxQuestion.php index 093df04..f06b135 100644 --- a/Source/BusinessClass/CheckBoxQuestion.php +++ b/Source/BusinessClass/CheckBoxQuestion.php @@ -25,11 +25,11 @@ class CheckBoxQuestion extends BoxQuestion $possibleResponses = $this->getPossibleResponses(); $categories = $this->getCategories(); - $html = "\t\t\t