diff --git a/Source/API/script/Gateway/GatewayForm.php b/Source/API/script/Gateway/GatewayForm.php index 022d9ea..750af6a 100644 --- a/Source/API/script/Gateway/GatewayForm.php +++ b/Source/API/script/Gateway/GatewayForm.php @@ -9,6 +9,9 @@ use PDOException; class GatewayForm { + /** + * @var Connection + */ private Connection $connection; public function __construct() @@ -20,6 +23,15 @@ class GatewayForm } } + /** + * Permet d'instancier un formulaire s'il n'y a pas déjà un de présent dans la base de donnée + * afin de rendre le formulaire modulable. + * + * @param string $title Titre du formulaire que l'on veut sauvegarder + * @param string $description Description du formulaire que l'on veut sauvegarder + * + * @return void + */ public function insertForm(string $title, string $description): void { if(!empty($this->getForm())) @@ -32,6 +44,11 @@ class GatewayForm } } + /** + * Permet de récupérer le formulaire sauvegarder dans la base de donnée. + * + * @return array Retourne un array contenant l'ensemble des données du formulaire + */ public function getForm(): array { $query = "SELECT * FROM `form`"; @@ -39,14 +56,31 @@ class GatewayForm return $this->connection->getResults(); } - public function deleteForm(array $idform): void + /** + * Permet de supprimer le formulaire dont l'id est le même que le formulaire passé en paramètre. + * + * @param int $idform Id du formulaire que l'on veut supprimer de la base de donnée + * + * @return void + */ + public function deleteForm(int $idform): void { $query = "DELETE FROM `form` WHERE id = :id"; $this->connection->executeQuery($query, array( - ':id' => array($idform[0], PDO::PARAM_INT) + ':id' => array($idform, PDO::PARAM_INT) )); } + /** + * Permet de faire le lien entre une catégorie et la réponse possible passées en paramètre + * à la question dont l'id est aussi passé en paramètre. + * + * @param string $keyword Keyword que l'on veut associer + * @param string $response Réponse que l'on veut associer + * @param int $idQuestion Id de la question qui contient la réponse + * + * @return void + */ public function assignKeywordToQuestion(string $keyword, int $idQuestion, string $response): void { $query = "SELECT pr.id @@ -67,6 +101,16 @@ class GatewayForm )); } + /** + * Permet de supprimer le lien entre une catégorie et la réponse possible passées en paramètre + * à la question dont l'id est aussi passé en paramètre. + * + * @param string $keyword Keyword que l'on veut associer + * @param int $idQuestion Id de la question qui contient la réponse + * @param string $response Réponse que l'on veut associer + * + * @return void + */ public function deleteKeywordFromQuestion(string $keyword, int $idQuestion, string $response): void { $query = "SELECT pr.id FROM `propose` p, `possibleresponse` r @@ -86,6 +130,14 @@ class GatewayForm )); } + /** + * Permet de modifier le titre du formulaire sauvé dans la base de donnée. + * + * @param int $id Id du formulaire que l'on veut modifier + * @param string $title Nouveau titre + * + * @return void + */ public function updateTitleToForm(int $id, string $title): void { $query = "UPDATE `form` SET title = :title WHERE id = :id"; @@ -95,6 +147,14 @@ class GatewayForm )); } + /** + * Permet de modifier la description du formulaire sauvé dans la base de donnée. + * + * @param int $id Id du formulaire que l'on veut modifier + * @param string $description Nouvelle description + * + * @return void + */ public function updateDescriptionToForm(int $id, string $description): void { $query = "UPDATE `form` SET title = :title WHERE description = :description"; @@ -104,6 +164,13 @@ class GatewayForm )); } + /** + * Permet de supprimer la description du formulaire dans la base de donnée en le remplaçant par une chaine vide. + * + * @param int $idForm Id du formulaire que l'on veut modifier + * + * @return void + */ public function deleteDescriptionToForm(int $idForm): void { $query = "UPDATE `form` SET title = :title WHERE description = :description"; @@ -113,6 +180,11 @@ class GatewayForm )); } + /** + * Permet de vérifier si un formulaire est présent dans la base de donnée + * + * @return bool + */ public function existsForm(): bool { $query = "SELECT * FROM `form`"; diff --git a/Source/API/script/Gateway/GatewayKeyword.php b/Source/API/script/Gateway/GatewayKeyword.php index 497cb26..54c21f3 100644 --- a/Source/API/script/Gateway/GatewayKeyword.php +++ b/Source/API/script/Gateway/GatewayKeyword.php @@ -9,6 +9,9 @@ use PDOException; class GatewayKeyword { + /** + * @var Connection + */ private Connection $connection; public function __construct() @@ -20,6 +23,13 @@ class GatewayKeyword } } + /** + * Permet d'ajouter un Keyword dans la base de donnée. + * + * @param string $keyword Keyword à ajouter + * + * @return void + */ public function insertKeyword(string $keyword): void { $query = "INSERT INTO `keyword`(word) VALUES(:word)"; @@ -28,6 +38,13 @@ class GatewayKeyword )); } + /** + * Permet de supprimer un keyword de la base de donnée. + * + * @param string $keyword Keyword à supprimer + * + * @return void + */ public function deleteKeyword(string $keyword): void { $query = "DELETE FROM `keyword` WHERE word = :word"; @@ -36,6 +53,11 @@ class GatewayKeyword )); } + /** + * Permet de récupérer l'ensemble des Keyword disponible. + * + * @return array Retourne la liste de l'ensemble des keyword sauvé dans la base de donnée + */ public function getAllKeyword(): array { $query = "SELECT * FROM `keyword`"; @@ -43,6 +65,13 @@ class GatewayKeyword return $this->connection->getResults(); } + /** + * Permet de récupérer tous les Keyword qui font référence à l'id de la réponse possible à une question passée en paramètre. + * + * @param int $id Id de la possible réponse que l'on veut connaitre ses catégories + * + * @return array Retourne l'ensemble de tous les Keyword associer à la réponse + */ public function getKeywordsContentByReference(int $id): array { $query = "SELECT k.* FROM `keyword` k, `reference` r diff --git a/Source/API/script/Gateway/GatewayListResponseOfCandidate.php b/Source/API/script/Gateway/GatewayListResponseOfCandidate.php index 397795f..6b9b327 100644 --- a/Source/API/script/Gateway/GatewayListResponseOfCandidate.php +++ b/Source/API/script/Gateway/GatewayListResponseOfCandidate.php @@ -9,8 +9,12 @@ use PDOException; class GatewayListResponseOfCandidate { + /** + * @var Connection + */ private Connection $connection; + public function __construct() { try{ @@ -20,6 +24,17 @@ class GatewayListResponseOfCandidate } } + /** + * 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épondues + * + * @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 d'autres listes de catégories, qui pour chaque même indice correspond à la liste des catégories de la réponse + */ public function getDetailsListResponsesOfCandidate(int $idListResponse): array { $gatewayResponse = new GatewayResponse(); @@ -42,6 +57,11 @@ class GatewayListResponseOfCandidate return array($questionList, $responses, $tabKeywords); } + /** + * Permet de récupérer la liste des personnes ayant répondu au 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`"; @@ -50,6 +70,13 @@ class GatewayListResponseOfCandidate return $this->connection->getResults(); } + /** + * 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(); @@ -64,6 +91,17 @@ class GatewayListResponseOfCandidate )); } + /** + * 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(); diff --git a/Source/API/script/Gateway/GatewayPossibleResponse.php b/Source/API/script/Gateway/GatewayPossibleResponse.php index c604d52..77e85e9 100644 --- a/Source/API/script/Gateway/GatewayPossibleResponse.php +++ b/Source/API/script/Gateway/GatewayPossibleResponse.php @@ -9,6 +9,9 @@ use PDOException; class GatewayPossibleResponse { + /** + * @var Connection + */ private Connection $connection; public function __construct() @@ -19,7 +22,13 @@ class GatewayPossibleResponse throw new PDOException($e->getMessage(), $e->getCode(), $e); } } - + /** + * Permet de récupérer les différentes réponses possibles à une question donnée. + * + * @param int $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(int $idQuestion): array { $query = "SELECT pr.* FROM `propose` p, `possibleresponse` pr @@ -31,6 +40,13 @@ 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)"; @@ -41,6 +57,13 @@ 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"; diff --git a/Source/API/script/Gateway/GatewayQuestion.php b/Source/API/script/Gateway/GatewayQuestion.php index 18d761a..0c6a1d9 100644 --- a/Source/API/script/Gateway/GatewayQuestion.php +++ b/Source/API/script/Gateway/GatewayQuestion.php @@ -9,6 +9,9 @@ use PDOException; class GatewayQuestion { + /** + * @var Connection + */ private Connection $connection; public function __construct() @@ -20,7 +23,15 @@ class GatewayQuestion } } - + /** + * Permet d'ajouter une question dans la base de donnée. + * + * @param string $contentQuestion Information sur la question ajoutée : content + * @param string $classQuestion Information sur la question ajoutée : type + * @param int $idForm Id du formulaire associer + * + * @return int Id de la question ajoutée en base + */ public function addQuestion(string $contentQuestion, string $classQuestion, int $idForm): int { $query = "INSERT INTO `question`(content, type, form) VALUES(:content, :type, :form)"; @@ -31,6 +42,16 @@ 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 void + */ public function insertResponseInQuestion(string $response, array $categories, int $idQuestion): void { $gatewayPossibleResponse = new GatewayPossibleResponse(); @@ -48,7 +69,14 @@ class GatewayQuestion } } - + /** + * Permet de supprimer une question dans la base ainsi que ses dépendances + * + * @param string $questionClass + * @param int $idQuestion Id de la question à supprimer + * @param array $questionGetPossibleResponse + * @return void + */ public function deleteQuestion(string $questionClass, int $idQuestion, array $questionGetPossibleResponse): void { if($questionClass == "BoxQuestionAPI") { @@ -77,6 +105,15 @@ class GatewayQuestion )); } + /** + * Permet de modifier dans la base de données les informations de la question. + * + * @param string $questionContent + * @param string $questionClass + * @param string $questionGetForm + * @param string $idQuestion + * @return void + */ public function updateQuestion(string $questionContent, string $questionClass, string $questionGetForm, string $idQuestion): void { $query = "UPDATE `question` SET content = :content, type = :type, form = :form WHERE id = :id"; @@ -88,11 +125,23 @@ class GatewayQuestion )); } - public function getAllQuestions(array $idForm): array + /** + * Permet de récupérer toutes les questions, possibles réponses et catégories associées d'un formulaire cible. + * + * @param int $idForm Id du formulaire + * + * @return array Retourne une liste qui pour + * l'indice 0 la liste des questions + * l'indice 1 une liste d'autres listes de réponses, qui pour chaque même indice correspond à la liste des réponses possibles de la question + * l'indice 2 une liste d'autres listes de liste de catégories qui pour chaque indice de questions, + * on a une liste d'autres listes de catégories qui pour chaque indice de réponses est associé une liste de catégories + * Ou vide s'il n'y a pas de question dans la base + */ + public function getAllQuestions(int $idForm): array { $query = "SELECT * FROM `question` WHERE form = :form"; $this->connection->executeQuery($query, array( - ':form' => array($idForm[0], PDO::PARAM_INT) + ':form' => array($idForm, PDO::PARAM_INT) )); $listQuestions = $this->connection->getResults(); @@ -127,6 +176,13 @@ class GatewayQuestion return array(); } + /** + * Permet de récupérer le contenu d'une réponse à une question par son id. + * + * @param int $id Id de la question cible + * + * @return string Retourne le contenu de la question ciblé + */ public function getQuestionContentById(int $id): string { $query = "SELECT content FROM `question` WHERE id = :id"; diff --git a/Source/API/script/index.php b/Source/API/script/index.php index 8766c65..8415656 100644 --- a/Source/API/script/index.php +++ b/Source/API/script/index.php @@ -253,7 +253,7 @@ $app->post('/insertListResponseOfCandidate', function(Request $request, Response throw new TypeErrorParameters($request); } try{ - (new GatewayListResponseOfCandidate)->insertListResponsesOfCandidate($parameters['id'],$parameters['answer'],$parameters['category'], $parameters['titleForm']); + (new GatewayListResponseOfCandidate)->insertListResponsesOfCandidate(array_map('intval', explode(",",$parameters['id'])),explode(",",$parameters['answer']),explode(",",$parameters['category']), $parameters['titleForm']); }catch (PDOException $e){ throw new PDOError($request,$e->getMessage(),$e); }