@ -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`";