commencement des commentaires et correction de méthode

interestingProfiles
Ness Gaster 2 years ago
parent 4f9ab8264c
commit a15369f9a8

@ -5,8 +5,14 @@ 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 Admin afin de gérer l'espace administrateur.
*/
class GatewayAdmin
{
/**
* @var Connection
*/
private Connection $connection;
public function __construct()
@ -14,6 +20,14 @@ class GatewayAdmin
$this->connection = connect();
}
/**
* Permet d'ajouter un administrateur dans la base de données.
*
* @param string $login Login du nouvel adimin
* @param string $hash Mot de passe au format hash du nouvel admin
*
* @return void
*/
public function addAdmin(string $login, string $hash): void
{
$query = "INSERT INTO Admin(login, hash) VALUES(:login, :hash)";
@ -23,6 +37,14 @@ class GatewayAdmin
));
}
/**
* Permet de récupérer le mot de passe en format hash du login passé en argument,
* afin de vérifier si la connection de l'utilisateur.
*
* @param string $login Login du coup duquel on veut récupérer le hash associé
*
* @return array
*/
public function getPassword(string $login): array
{
$query = 'SELECT Hash FROM Admin WHERE Login = :login';
@ -31,10 +53,18 @@ class GatewayAdmin
':login' => array($login, PDO::PARAM_STR)
));
$results=$this->con->getResults();
return $results;
return $this->connection->getResults();
}
/**
* Permet de changer le mot de passe de l'administrateur dont le login
* et le nouveau mot de passe au format hash est passé en argument.
*
* @param string $login Login dont on change le mot de passe
* @param string $hash Nouveau mot de passe au format hash
*
* @return void
*/
public function changePassword(string $login, string $hash): void
{
$query = "UPDATE Admin SET hash = :hash WHERE login = :login";
@ -44,6 +74,13 @@ class GatewayAdmin
));
}
/**
* Permet de supprimer un administrateur de la base de donnée par un login passé en paramètre.
*
* @param string $login Login du compte qui sera supprimé
*
* @return void
*/
public function deleteAdmin(string $login): void
{
$query = "DELETE FROM Admin WHERE login = :login";

@ -7,15 +7,33 @@ use BusinessClass\Form;
use BusinessClass\Question;
use PDO;
/**
* Permet d'accéder, d'écrire ou de modifier les données contenues dans la table Form
* afin de gérer l'affichage principale du formulaire.
*/
class GatewayForm
{
/**
* @var Connection
*/
private Connection $connection;
/**
*
*/
public function __construct()
{
$this->connection = connect();
}
/**
* 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 Form $form Formulaire que l'on veut sauvegarder
*
* @return void
*/
public function insertForm(Form $form): void
{
if (empty($this->getForm())) {
@ -27,6 +45,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";
@ -35,6 +58,13 @@ class GatewayForm
return $this->connection->getResults();
}
/**
* Permet de supprimer le formulaire dont l'id est le même que le formulaire passé en paramètre.
*
* @param Form $form Formulaire que l'on veut supprimer de la base de donnée
*
* @return void
*/
public function deleteForm(Form $form): void
{
$query = "DELETE FROM Form WHERE id = :id";
@ -43,6 +73,16 @@ class GatewayForm
));
}
/**
* 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, string $response, int $idQuestion): void
{
$query = "SELECT pr.id
@ -63,6 +103,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 string $response Réponse que l'on veut associer
* @param Question $question Id de la question qui contient la réponse
*
* @return void
*/
public function deleteKeywordFromQuestion(string $keyword, string $response, Question $question): void
{
$query = "SELECT pr.id FROM Propose p, PossibleResponse r
@ -82,6 +132,14 @@ class GatewayForm
));
}
/**
* Permet de modifier le titre du formulaire sauvé dans la base de donnée.
*
* @param string $title Nouveau titre
* @param Form $form Formulaire que l'on veut modifier
*
* @return void
*/
public function updateTitleToForm(string $title, Form $form): void
{
$query = "UPDATE Form SET title = :title WHERE id = :id";
@ -91,6 +149,14 @@ class GatewayForm
));
}
/**
* Permet de modifier la description du formulaire sauvé dans la base de donnée.
*
* @param string $description Nouvelle description
* @param Form $form Formulaire que l'on veut modifier
*
* @return void
*/
public function updateDescriptionToForm(string $description, Form $form): void
{
$query = "UPDATE Form SET title = :title WHERE description = :description";
@ -100,11 +166,18 @@ class GatewayForm
));
}
/**
* Permet de supprimer la description du formulaire dans la base de donnée en le remplaçant par une chaine vide.
*
* @param Form $form Formulaire que l'on veut modifier
*
* @return void
*/
public function deleteDescriptionToForm(Form $form): void
{
$query = "UPDATE Form SET title = :title WHERE description = :descript";
$query = "UPDATE Form SET title = :title WHERE description = :description";
$this->connection->executeQuery($query, array(
':descript' => array('', PDO::PARAM_STR),
':description' => array('', PDO::PARAM_STR),
':id' => array($form->getId(), PDO::PARAM_INT)
));
}

@ -5,15 +5,32 @@ 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 Keyword
* afin de gérer les catégories disponibles et associer aux différentes réponses des questions.
*/
class GatewayKeyword
{
/**
* @var Connection
*/
private Connection $connection;
/**
*
*/
public function __construct()
{
$this->connection = connect();
}
/**
* Permet d'ajouter un Keyword dans la base de donnée.
*
* @param string $keyword Keyword à ajouter
*
* @return void
*/
public function insertKeyword(string $keyword)
{
$query = "INSERT INTO Keyword(word) VALUES(:word)";
@ -22,6 +39,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)
{
$query = "DELETE FROM Keyword WHERE word = :word";
@ -30,6 +54,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";
@ -38,6 +67,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
@ -46,10 +82,41 @@ class GatewayKeyword
':id' => array($id, PDO::PARAM_STR)
));
return $this->getKeywordByAssotiation($id , $query);
}
/**
* Permet de récupérer tous les Keyword qui font référence à l'id de la réponse d'un candidat passée en paramètre.
*
* @param int $id Id de la 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 getKeywordsContentByCategorieze(int $id): array
{
$query = "SELECT k.* FROM Keyword k, Categorieze c
WHERE k.word = c.keyword AND c.response = :id";
return $this->getKeywordByAssotiation($id , $query);
}
/**
* Permet de récupérer une liste de Keyword selon une requête donnée et un id associé.
*
* @param int $id Id de l'objet dont on veut ses Keyword associé
* @param string $query Requête que l'on veut exécuter
*
* @return array Retourne la liste des différents Keyword associé à l'objet voulu
*/
private function getKeywordByAssotiation(int $id, string $query): array
{
$this->connection->executeQuery($query, array(
':id' => array($id, PDO::PARAM_STR)
));
$tab = [];
foreach ($this->connection->getResults() as $result) {
$tab[] = $result["word"];
$tab[] = $result["word"];
}
return $tab;

@ -5,8 +5,15 @@ 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 ListResponseOfCandidate
* afin de gérer les réponses fournit des candidats.
*/
class GatewayListResponseOfCandidate
{
/**
* @var Connection
*/
private Connection $connection;
public function __construct()
@ -14,11 +21,19 @@ class GatewayListResponseOfCandidate
$this->connection = connect();
}
/**
* Permet de récupérer l'ensemble des réponses d'un candidat ansi que les Keywords associer à chaque réponse.
*
* @param int $idListResponse Id de la liste de réponse d'un candidat
*
* @return array Retourne une liste contenant
* à l'indice 0 les informations globale de la liste des réponses du candidat, à l'indice 1 la liste de réponse
* et à l'indice 2 une liste de liste de Keword,
* où chaque indice d'une liste de question est associé au même indice une réponse
*/
public function getDetailsListResponsesOfCandidate(int $idListResponse)
{
$gatewayResponse = new GatewayResponse();
$gatewayKeyword = new GatewayKeyword();
$tabKeywords = [];
$query = "SELECT * FROM ListResponsesOfCandidate WHERE id = :id";
$this->connection->executeQuery($query, array(
@ -27,15 +42,16 @@ class GatewayListResponseOfCandidate
$questionList = $this->connection->getResults()[0];
$responses = $gatewayResponse->getResponsesByIdListCandidate($questionList['id']);
$result = $gatewayResponse->getCatgoriezeOfResponsesIdByIdListCandidate($questionList['id']);
foreach ($responses as $row) {
$tabKeywords[] = $gatewayKeyword->getKeywordsContentByCategorieze($row['id']);
}
return array($questionList, $responses, $tabKeywords);
return array($questionList, $result[0], $result[1]);
}
/**
* Permet de recupérer seulement les informations globales de toutes listes de réponses de candidat.
*
* @return array Retourne une liste d'informations globale de la liste des réponses du candidat
*/
public function getAllListResponsesOfCandidate(): array
{
$query = "SELECT * FROM ListResponsesOfCandidate";
@ -44,6 +60,10 @@ class GatewayListResponseOfCandidate
return $this->connection->getResults();
}
/**
* @param $id
* @return void
*/
public function deleteListResponseOfCandidate($id): void
{
$gatewayResponse = new GatewayResponse();
@ -58,6 +78,13 @@ class GatewayListResponseOfCandidate
));
}
/**
* @param $id
* @param $answer
* @param $category
* @param $titleForm
* @return void
*/
public function insertListResponsesOfCandidate($id, $answer, $category, $titleForm)
{
$gatewayResponse = new GatewayResponse();

@ -5,8 +5,15 @@ 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 Response
* afin de récupérer les réponses d'un utilisateur.
*/
class GatewayResponse
{
/**
* @var Connection
*/
private Connection $connection;
public function __construct()
@ -14,10 +21,18 @@ class GatewayResponse
$this->connection = connect();
}
public function getResponsesByIdListCandidate(int $listResponsesOfCandidateId): array
/**
* Permet de récupérer la liste des réponses d'un candidat ainsi que les Keyword couvert pour chaque réponse.
*
* @param int $listResponsesOfCandidateId Id du candidat
*
* @return array Retourne une liste contenant à l'indice 0 la liste de réponse
* et à l'indice 1 une liste de liste de Keword,
* où chaque indice d'une liste de question est associé au même indice une réponse
*/
public function getCatgoriezeOfResponsesIdByIdListCandidate(int $listResponsesOfCandidateId): array
{
$result = $this->getResponsesIdByIdListCandidate($listResponsesOfCandidateId);
$result = $this->getResponsesByIdListCandidate($listResponsesOfCandidateId);
$tab = [];
foreach ($result as $row) {
$tab[] = (new GatewayKeyword())->getKeywordsContentByCategorieze($row['id']);
@ -26,15 +41,57 @@ class GatewayResponse
return array($result, $tab);
}
/**
* Permet de récupérer la liste des réponses d'un candidat par son id.
*
* @param int $listResponsesOfCandidateId Id du candidat
*
* @return array Retourne la list des réponses du candidat
*/
public function getResponsesByIdListCandidate(int $listResponsesOfCandidateId): array
{
$query = "SELECT r.* FROM Response r, Submit s WHERE s.responseCandidate = :id AND r.id = s.response";
return $this->getResponsesByQueryAndIdListCandidate($query, $listResponsesOfCandidateId);
}
/**
* Permet de récupérer la liste des id des réponses d'un candidat par son id.
*
* @param int $listResponsesOfCandidateId Id du candidat
*
* @return array Retourne la list des id des réponses du candidat
*/
public function getResponsesIdByIdListCandidate(int $listResponsesOfCandidateId): array
{
$query = "SELECT r.id FROM Response r, Submit s WHERE s.responseCandidate = :id AND r.id = s.response";
return $this->getResponsesByQueryAndIdListCandidate($query, $listResponsesOfCandidateId);
}
/**
* Permet de récupérer une liste de format de réponse définit par la commande sql passé en paramètre,
* dont l'id du candidat, ayant formulé ces réponses, est passé en paramètre.
*
* @param string $query Requête du format de liste de réponse voulu
* @param int $id Id du candidat cible
*
* @return array Retourne la liste des réponses d'un candidat selon le format voulu
*/
private function getResponsesByQueryAndIdListCandidate(string $query, int $id): array
{
$this->connection->executeQuery($query, array(
':id' => array($listResponsesOfCandidateId, PDO::PARAM_INT)
':id' => array($id, PDO::PARAM_INT)
));
return $this->connection->getResults();
}
/**
* Permet de supprimer la réponse et ses liens avec les différents Keyword
* selon l'id de la réponse passée en paramêtre
*
* @param int $responseId Id de la réponse à supprimer
*
* @return void
*/
public function deleteResponseById(int $responseId): void
{
$query = "DELETE FROM Categorize WHERE response = :id";
@ -53,6 +110,15 @@ class GatewayResponse
));
}
/**
* Permet d'insérer une réponse ainsi que de la lier avec les Keywords passés en paramètre.
*
* @param string $content Contenu de la réponse
* @param string $questionContent Contenu de la question, dans le cas où la question viendra à changer dans le futur
* @param array $category Liste des Keyword associé à la réponse
*
* @return int Retourne l'Id de la réponse insérée
*/
public function insertResponse(string $content, string $questionContent, array $category): int
{
$query = "INSERT INTO Response(content, questionContent) VALUES (:content, :questionContent)";
@ -63,7 +129,6 @@ class GatewayResponse
$idResponse = $this->connection->lastInsertId();
foreach ($category as $keyword) {
$query = "INSERT INTO Categorize (response, keyword) VALUES(:response, :keyword)";
$this->connection->executeQuery($query, array(

Loading…
Cancel
Save