test Model methods
continuous-integration/drone/push Build is passing Details

AdminInterface
Alexis 2 years ago
parent b730acbf4d
commit 504c7975d2

@ -7,9 +7,9 @@ require_once __DIR__ ."/Connection.php";
function connect()
{
$dsn = "mysql:host=".$_ENV["HOST"].";dbname=".$_ENV["DATABASE"].";";
$login = $_ENV["USER"];
$password = $_ENV["PASSWORD"];
$dsn = "mysql:host=localhost;dbname=formulaire;charset=utf8";
$login = "root";
$password = "root";
try {

@ -2,8 +2,6 @@
namespace API\script\Gateway;
include(__DIR__ . "/../Config/config.php");
use API\script\Config\Connection;
use BusinessClass\Form;
use BusinessClass\Keyword;
@ -39,25 +37,26 @@ class GatewayForm
return $this->connection->getResults();
}
public function assignKeywordToQuestion(Keyword $keyword, string $response, int $idQuestion)
public function assignKeywordToQuestion(string $keyword, string $response, int $idQuestion)
{
$query = "SELECT pr.id FROM Propose p, PossibleResponse r WHERE p.question = :id AND p.possibleResponse = pr.id AND pr.content = :response";
echo $keyword;
$query = "SELECT pr.id FROM Propose p, PossibleResponse pr WHERE p.question = :id AND p.possibleResponse = pr.id AND pr.content = :response";
$this->connection->executeQuery($query, array(
':id' => array($idQuestion, PDO::PARAM_STR),
':response' => array($response, PDO::PARAM_STR)
));
$idPossibleResponse = $this->connection->getResults()[0][0];
$idPossibleResponse = $this->connection->getResults()[0][0];
$query = "INSERT INTO Reference(possibleResponse, keyword) VALUES(:possibleResponse, :keyword)";
$this->connection->executeQuery($query, array(
':possibleResponse' => array($idPossibleResponse, PDO::PARAM_INT),
':keyword' => array($keyword->getId(), PDO::PARAM_INT)
':keyword' => array($keyword, PDO::PARAM_STR)
));
}
public function deleteKeywordFromQuestion(Keyword $keyword, string $response, Question $question)
public function deleteKeywordFromQuestion(string $keyword, string $response, Question $question)
{
$query = "SELECT pr.id FROM Propose p, PossibleResponse r WHERE p.question = :id AND p.possibleResponse = pr.id AND pr.content = :response";
$this->connection->executeQuery($query, array(

@ -2,8 +2,6 @@
namespace API\script\Gateway;
include(__DIR__ . "/../Config/config.php");
use API\script\Config\Connection;
use BusinessClass\Keyword;

@ -2,11 +2,10 @@
namespace API\script\Gateway;
include(__DIR__ . "/../Config/config.php");
use API\script\Config\Connection;
use BusinessClass\BoxQuestion;
use BusinessClass\Question;
use BusinessClass\TextQuestion;
use PDO;
class GatewayQuestion
@ -29,7 +28,7 @@ class GatewayQuestion
$idQuestion = $this->connection->lastInsertId();
if(get_class($question) == BoxQuestion::class){
if(get_class($question) != TextQuestion::class){
$listPossibleResponse = $question->getPossibleResponses();
for($i = 0; $i < count($listPossibleResponse); $i++){
@ -49,11 +48,12 @@ class GatewayQuestion
foreach ($question->getCategories()[$i] as $keyword){
$gatewayForm = new GatewayForm($this->connection);
$gatewayForm = new GatewayForm();
$gatewayForm->assignKeywordToQuestion($keyword, $listPossibleResponse[$i], $idQuestion);
}
}
}
}
public function deleteQuestion(Question $question): void
@ -97,29 +97,38 @@ class GatewayQuestion
public function getAllQuestions(string $idForm): array //revoie un array contenant trois qui pour chaque indice commun de ces 3 array une question, sa liste de reponse possible et sa liste de keyword associer au réponse. les deux autres sont null si c'est une textBox
{
$query = "SELECT * FROM Question WHERE from = :form";
$query = "SELECT * FROM Question WHERE form = :form";
$this->connection->executeQuery($query, array(
':form' => array($idForm, PDO::PARAM_STR)
));
$resultQuestion = $this->connection->getResults();
$possibleResponse = [];
$keywordResponse = [];
for ($i=0; $i < count($resultQuestion); $i++){
if($resultQuestion[$i]["type"]!="TextQuestion"){
if(!empty($resultQuestion))
{
for ($i=0; $i < count($resultQuestion); $i++)
{
if($resultQuestion[$i]["type"]!="TextQuestion")
{
$query = "SELECT pr.* FROM Propose p, PossibleResponse pr
WHERE p.question = :questionId AND p.possibleResponse = pr.id";
$this->connection->executeQuery($query, array(
':id' => array($resultQuestion[$i]["id"], PDO::PARAM_STR)
':questionId' => array($resultQuestion[$i]["id"], PDO::PARAM_INT)
));
$possibleResponse[] = $this->connection->getResults();
$tmpTab = [];
foreach ($possibleResponse[$i] as $row){
var_dump($row);
$query = "SELECT k.* FROM Keyword k, Reference r
WHERE k.id = r.keyword AND r.response = :id";
WHERE k.word = r.keyword AND r.possibleResponse = :id";
$this->connection->executeQuery($query, array(
':id' => array($row["id"], PDO::PARAM_STR)
':id' => array($row["id"], PDO::PARAM_INT)
));
$tmpTab[] = $this->connection->getResults();
@ -133,4 +142,6 @@ class GatewayQuestion
}
return array($resultQuestion, $possibleResponse, $keywordResponse);
}
return array();
}
}

@ -2,8 +2,6 @@
namespace Controller;
use API\Gateway\GatewayQuestion;
use BusinessClass\ListBoxQuestion;
use Model\ModelAdmin;
class ControllerAdmin

@ -10,6 +10,7 @@ class ControllerCandidate
{
global $rep, $views;
$html = (new ModelCandidate())->getForm();
require($rep.$views['form']);
}

@ -18,7 +18,7 @@ class FrontController
try
{
/* Si l'action est NULL on appelle goToTestimony(), sinon on nettoie l'action */
$action = $_REQUEST['action'] ? $action = $_REQUEST['action'] : (new ControllerCandidate)->goToForm();
$action = $_REQUEST['action'] ? $action = $_REQUEST['action'] : (new ControllerCandidate())->goToForm();
foreach ($listControllers as $controller) // Pour chaque Controller
{
@ -31,7 +31,7 @@ class FrontController
} catch (PDOException|Exception $e)
{
$dVueError[] = "Erreur innatendue !"; // Ecriture du message d'erreur
require ($rep.$views['error']); // Affichage de la vue d'erreur
echo "ERREUUUUUR";
}
exit(0);

@ -24,7 +24,6 @@ class ModelAdmin
public function createForm(): void
{
if(empty((new GatewayForm())->getForm()))
{
$form = new Form(0, "Votre avis nous intéresse !!!", "Description de notrer formulaire", array());

@ -34,6 +34,7 @@ class ModelCandidate
return "PAS DE FORMULAIRE\n";
}
$title = $form[0]['title'];
$description = $form[0]['description'];
$questionsTab = (new GatewayQuestion())->getAllQuestions($form[0]['id']);
@ -51,6 +52,7 @@ class ModelCandidate
$possiblesResponses = $questionsTab[1][$i];
$content = $questionsTab[0][$i]['content'];
$categories = $questionsTab[2][$i];
$id = $questionsTab[0][$i]['id'];
$questions[] = new $questionsTab[0][$i]['type']($possiblesResponses, $content, $categories, $id);
@ -63,6 +65,7 @@ class ModelCandidate
<div id='container_form'>\n
<form>\n";
foreach ($questions as $question)
{
$html.= $question->printStrategy()."\n";

@ -3,6 +3,8 @@
use Controller\FrontController;
require_once(__DIR__ . "/API/script/Config/config.php");
require_once(__DIR__.'/Config/config.php');
require_once(__DIR__.'/Config/Autoload.php');
Autoload::charger();

Loading…
Cancel
Save