Add php docs comment, change little modifications
continuous-integration/drone/push Build is failing Details

master
dorian.hodin 2 years ago
parent 9e52f2da79
commit b2aa64356b

@ -9,6 +9,9 @@ use PDOException;
class GatewayForm class GatewayForm
{ {
/**
* @var Connection
*/
private Connection $connection; private Connection $connection;
public function __construct() 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 public function insertForm(string $title, string $description): void
{ {
if(!empty($this->getForm())) 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 public function getForm(): array
{ {
$query = "SELECT * FROM `form`"; $query = "SELECT * FROM `form`";
@ -39,14 +56,31 @@ class GatewayForm
return $this->connection->getResults(); 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"; $query = "DELETE FROM `form` WHERE id = :id";
$this->connection->executeQuery($query, array( $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 public function assignKeywordToQuestion(string $keyword, int $idQuestion, string $response): void
{ {
$query = "SELECT pr.id $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 public function deleteKeywordFromQuestion(string $keyword, int $idQuestion, string $response): void
{ {
$query = "SELECT pr.id FROM `propose` p, `possibleresponse` r $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 public function updateTitleToForm(int $id, string $title): void
{ {
$query = "UPDATE `form` SET title = :title WHERE id = :id"; $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 public function updateDescriptionToForm(int $id, string $description): void
{ {
$query = "UPDATE `form` SET title = :title WHERE description = :description"; $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 public function deleteDescriptionToForm(int $idForm): void
{ {
$query = "UPDATE `form` SET title = :title WHERE description = :description"; $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 public function existsForm(): bool
{ {
$query = "SELECT * FROM `form`"; $query = "SELECT * FROM `form`";

@ -9,6 +9,9 @@ use PDOException;
class GatewayKeyword class GatewayKeyword
{ {
/**
* @var Connection
*/
private Connection $connection; private Connection $connection;
public function __construct() 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 public function insertKeyword(string $keyword): void
{ {
$query = "INSERT INTO `keyword`(word) VALUES(:word)"; $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 public function deleteKeyword(string $keyword): void
{ {
$query = "DELETE FROM `keyword` WHERE word = :word"; $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 public function getAllKeyword(): array
{ {
$query = "SELECT * FROM `keyword`"; $query = "SELECT * FROM `keyword`";
@ -43,6 +65,13 @@ class GatewayKeyword
return $this->connection->getResults(); 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 public function getKeywordsContentByReference(int $id): array
{ {
$query = "SELECT k.* FROM `keyword` k, `reference` r $query = "SELECT k.* FROM `keyword` k, `reference` r

@ -9,8 +9,12 @@ use PDOException;
class GatewayListResponseOfCandidate class GatewayListResponseOfCandidate
{ {
/**
* @var Connection
*/
private Connection $connection; private Connection $connection;
public function __construct() public function __construct()
{ {
try{ 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 public function getDetailsListResponsesOfCandidate(int $idListResponse): array
{ {
$gatewayResponse = new GatewayResponse(); $gatewayResponse = new GatewayResponse();
@ -42,6 +57,11 @@ class GatewayListResponseOfCandidate
return array($questionList, $responses, $tabKeywords); 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 public function getAllListResponsesOfCandidate(): array
{ {
$query = "SELECT * FROM `listresponsesofcandidate`"; $query = "SELECT * FROM `listresponsesofcandidate`";
@ -50,6 +70,13 @@ class GatewayListResponseOfCandidate
return $this->connection->getResults(); 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 public function deleteListResponseOfCandidate(int $id): void
{ {
$gatewayResponse = new GatewayResponse(); $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 public function insertListResponsesOfCandidate(array $id, array $answer, array $category, string $titleForm): void
{ {
$gatewayResponse = new GatewayResponse(); $gatewayResponse = new GatewayResponse();

@ -9,6 +9,9 @@ use PDOException;
class GatewayPossibleResponse class GatewayPossibleResponse
{ {
/**
* @var Connection
*/
private Connection $connection; private Connection $connection;
public function __construct() public function __construct()
@ -19,7 +22,13 @@ class GatewayPossibleResponse
throw new PDOException($e->getMessage(), $e->getCode(), $e); 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 public function getPossibleResponseByQuestion(int $idQuestion): array
{ {
$query = "SELECT pr.* FROM `propose` p, `possibleresponse` pr $query = "SELECT pr.* FROM `propose` p, `possibleresponse` pr
@ -31,6 +40,13 @@ class GatewayPossibleResponse
return $this->connection->getResults(); 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 public function insertPossibleResponse(string $contentPossibleResponse): int
{ {
$query = "INSERT INTO `possibleresponse`(content) VALUES(:content)"; $query = "INSERT INTO `possibleresponse`(content) VALUES(:content)";
@ -41,6 +57,13 @@ class GatewayPossibleResponse
return $this->connection->lastInsertId(); 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 public function deletePossibleResponse(int $id): void
{ {
$query = "DELETE FROM `reference` WHERE response = :id"; $query = "DELETE FROM `reference` WHERE response = :id";

@ -9,6 +9,9 @@ use PDOException;
class GatewayQuestion class GatewayQuestion
{ {
/**
* @var Connection
*/
private Connection $connection; private Connection $connection;
public function __construct() 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 public function addQuestion(string $contentQuestion, string $classQuestion, int $idForm): int
{ {
$query = "INSERT INTO `question`(content, type, form) VALUES(:content, :type, :form)"; $query = "INSERT INTO `question`(content, type, form) VALUES(:content, :type, :form)";
@ -31,6 +42,16 @@ class GatewayQuestion
)); ));
return $this->connection->lastInsertId(); 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 public function insertResponseInQuestion(string $response, array $categories, int $idQuestion): void
{ {
$gatewayPossibleResponse = new GatewayPossibleResponse(); $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 public function deleteQuestion(string $questionClass, int $idQuestion, array $questionGetPossibleResponse): void
{ {
if($questionClass == "BoxQuestionAPI") { 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 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"; $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"; $query = "SELECT * FROM `question` WHERE form = :form";
$this->connection->executeQuery($query, array( $this->connection->executeQuery($query, array(
':form' => array($idForm[0], PDO::PARAM_INT) ':form' => array($idForm, PDO::PARAM_INT)
)); ));
$listQuestions = $this->connection->getResults(); $listQuestions = $this->connection->getResults();
@ -127,6 +176,13 @@ class GatewayQuestion
return array(); 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 public function getQuestionContentById(int $id): string
{ {
$query = "SELECT content FROM `question` WHERE id = :id"; $query = "SELECT content FROM `question` WHERE id = :id";

@ -253,7 +253,7 @@ $app->post('/insertListResponseOfCandidate', function(Request $request, Response
throw new TypeErrorParameters($request); throw new TypeErrorParameters($request);
} }
try{ 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){ }catch (PDOException $e){
throw new PDOError($request,$e->getMessage(),$e); throw new PDOError($request,$e->getMessage(),$e);
} }

Loading…
Cancel
Save