Finalize call of API from ModelAdmin.php, cant test yet, remove Gateway
continuous-integration/drone/push Build is passing Details

interestingProfiles
dorian.hodin 2 years ago
parent 5872130e9c
commit aac0f99592

@ -1,7 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.idea/dataSources" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>

@ -9,7 +9,7 @@
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.0" />
<component name="PhpProjectSharedConfiguration" php_language_level="8.1" />
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>

@ -1,40 +0,0 @@
<?php
namespace API\script\Gateway;
use 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()
{
$this->connection = connect();
}
/**
* Permet de récupérer le mot de passe de l'administrateur en fonction de son login.
* @param String $login Le login de l'administrateur.
* @return String|null Le mot de passe de l'administrateur ou null si l'administrateur n'existe pas.
*/
public function getPasswordWithLogin(String $login)
{
$query = "SELECT password FROM ADMIN WHERE login = :login";
$this->connection->executeQuery($query, array(
':login' => array($login, PDO::PARAM_STR)
));
$result = $this->connection->getResults();
if(empty($result))
return null;
return $result[0]['password'];
}
}

@ -1,118 +0,0 @@
<?php
namespace API\script\Gateway;
use Config\Connection;
use BusinessClass\Form;
use BusinessClass\Question;
use PDO;
class GatewayForm
{
private Connection $connection;
public function __construct()
{
$this->connection = connect();
}
public function insertForm(Form $form): void
{
if (empty($this->getForm())) {
$query = "INSERT INTO Form(title, description) VALUES(:title, :desc)";
$this->connection->executeQuery($query, array(
':title' => array($form->getTitle(), PDO::PARAM_STR),
':desc' => array($form->getDescription(), PDO::PARAM_STR)
));
}
}
public function getForm(): array
{
$query = "SELECT * FROM Form";
$this->connection->executeQuery($query);
return $this->connection->getResults();
}
public function deleteForm(Form $form): void
{
$query = "DELETE FROM Form WHERE id = :id";
$this->connection->executeQuery($query, array(
':id' => array($form->getId(), PDO::PARAM_INT)
));
}
public function assignKeywordToQuestion(string $keyword, string $response, int $idQuestion): void
{
$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_INT),
':response' => array($response, PDO::PARAM_STR)
));
$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, PDO::PARAM_STR)
));
}
public function deleteKeywordFromQuestion(string $keyword, string $response, Question $question): void
{
$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(
':id' => array($question->getId(), PDO::PARAM_INT),
':response' => array($response, PDO::PARAM_STR)
));
$idPossibleResponse = $this->connection->getResults()[0][0];
$query = "DELETE FROM Reference WHERE response = :idResponse AND keyword = :idKeword";
$this->connection->executeQuery($query, array(
':idResponse' => array($idPossibleResponse, PDO::PARAM_INT),
':idKeword' => array($keyword, PDO::PARAM_INT)
));
}
public function updateTitleToForm(string $title, Form $form): void
{
$query = "UPDATE Form SET title = :title WHERE id = :id";
$this->connection->executeQuery($query, array(
':title' => array($title, PDO::PARAM_STR),
':id' => array($form->getId(), PDO::PARAM_INT)
));
}
public function updateDescriptionToForm(string $description, Form $form): void
{
$query = "UPDATE Form SET title = :title WHERE description = :description";
$this->connection->executeQuery($query, array(
':description' => array($description, PDO::PARAM_STR),
':id' => array($form->getId(), PDO::PARAM_INT)
));
}
public function deleteDescriptionToForm(Form $form): void
{
$query = "UPDATE Form SET title = :title WHERE description = :descript";
$this->connection->executeQuery($query, array(
':descript' => array('', PDO::PARAM_STR),
':id' => array($form->getId(), PDO::PARAM_INT)
));
}
public function existsForm(): bool
{
$query = "SELECT * FROM Form";
$this->connection->executeQuery($query);
return !empty($this->connection->getResults());
}
}

@ -1,124 +0,0 @@
<?php
namespace API\script\Gateway;
use 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)";
$this->connection->executeQuery($query, array(
':word' => array($keyword, PDO::PARAM_STR)
));
}
/**
* 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";
$this->connection->executeQuery($query, array(
':word' => array($keyword, PDO::PARAM_STR)
));
}
/**
* 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";
$this->connection->executeQuery($query);
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
WHERE k.word = r.keyword AND r.possibleResponse = :id";
$this->connection->executeQuery($query, array(
':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, Categorize 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"];
}
return $tab;
}
}

@ -1,129 +0,0 @@
<?php
namespace API\script\Gateway;
use Config\Connection;
use PDO;
/**
* Permet d'accéder, d'écrire ou de modifier les données contenues dans la table PossibleResponse
* afin de gérer la liste des réponses et les catégories associer d'un candidat.
*/
class GatewayListResponseOfCandidate
{
/**
* @var Connection
*/
private Connection $connection;
/**
*
*/
public function __construct()
{
$this->connection = connect();
}
/**
* 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épondu
*
* @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 de liste de catégories, qui pour chaque même indice correspont à la liste des catégories de la 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(
':id' => array($idListResponse, PDO::PARAM_INT)
));
$questionList = $this->connection->getResults()[0];
$responses = $gatewayResponse->getResponsesByIdListCandidate($questionList['id']);
foreach ($responses as $row) {
$tabKeywords[] = $gatewayKeyword->getKeywordsContentByCategorieze($row['id']);
}
return array($questionList, $responses, $tabKeywords);
}
/**
* Permet de récupérer la liste des personnes ayant répondu aux 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";
$this->connection->executeQuery($query);
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();
foreach ($gatewayResponse->getResponsesIdByIdListCandidate($id) as $response) {
$gatewayResponse->deleteResponseById($response);
}
$query = "DELETE FROM ListResponsesOfCandidate WHERE id = :id";
$this->connection->executeQuery($query, array(
'id' => array($id, PDO::PARAM_INT)
));
}
/**
* 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();
$gatewayQuestion = new GatewayQuestion();
$query = "INSERT INTO ListResponsesOfCandidate(date, titleForm) VALUES(:date, :titleForm)";
$this->connection->executeQuery($query, array(
':date' => array(date('Y-m-d H:i:s'), PDO::PARAM_STR),
':titleForm' => array($titleForm, PDO::PARAM_STR)
));
$idListQuestion = $this->connection->lastInsertId();
for ($i = 0; $i < count($answer); $i++) {
$question = $gatewayQuestion->getQuestionContentById($id[$i]);
$idResponse = $gatewayResponse->insertResponse($question, $answer[$i], $category[$i]);
$query = "INSERT INTO Submit (responsesCandidate, response) VALUES(:responsesCandidate, :response)";
$this->connection->executeQuery($query, array(
':responsesCandidate' => array($idListQuestion, PDO::PARAM_STR),
':response' => array($idResponse, PDO::PARAM_STR)
));
}
}
}

@ -1,79 +0,0 @@
<?php
namespace API\script\Gateway;
use Config\Connection;
use PDO;
/**
* Permet d'accéder, d'écrire ou de modifier les données contenues dans la table PossibleResponse.
*/
class GatewayPossibleResponse
{
/**
* @var Connection
*/
private Connection $connection;
/**
*
*/
public function __construct()
{
$this->connection = connect();
}
/**
* Permet de récupérer les différentes réponses possibles à une question donnée.
*
* @param string $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(string $idQuestion): array
{
$query = "SELECT pr.* FROM Propose p, PossibleResponse pr
WHERE p.question = :questionId AND p.possibleResponse = pr.id";
$this->connection->executeQuery($query, array(
':questionId' => array($idQuestion, PDO::PARAM_INT)
));
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)";
$this->connection->executeQuery($query, array(
':content' => array($contentPossibleResponse, PDO::PARAM_STR)
));
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";
$this->connection->executeQuery($query, array(
':id' => array($id, PDO::PARAM_INT)
));
$query = "DELETE FROM PossibleResponse WHERE id = :id";
$this->connection->executeQuery($query, array(
':id' => array($id, PDO::PARAM_INT)
));
}
}

@ -1,193 +0,0 @@
<?php
namespace API\script\Gateway;
use Config\Connection;
use BusinessClass\BoxQuestion;
use BusinessClass\Question;
use BusinessClass\TextQuestion;
use PDO;
/**
* Permet d'accéder, d'écrire ou de modifier les données contenues dans la table Question
* afin de rendre le formulaire modulable.
*/
class GatewayQuestion
{
/**
* @var Connection
*/
private Connection $connection;
/**
*
*/
public function __construct()
{
$this->connection = connect();
}
/**
* Permet d'ajouter une question dans la base de donnée.
*
* @param Question $question Information sur la question ajouter
* @param int $idForm Id du formulaire associer
*
* @return int Id de la question ajouté en base
*/
public function addQuestion(Question $question, int $idForm): int
{
$query = "INSERT INTO Question(content, type, form) VALUES(:content, :type, :form)";
$this->connection->executeQuery($query, array(
':content' => array($question->getContent(), PDO::PARAM_STR),
':type' => array(get_class($question), PDO::PARAM_STR),
':form' => array($idForm, PDO::PARAM_INT)
));
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 int Retourne l'id de la possible réponse insérée en base
*/
public function insertResponseInQuestion(string $response, array $categories, int $idQuestion): int
{
$gatewayPossibleResponse = new GatewayPossibleResponse();
$idPossibleResponse = $gatewayPossibleResponse->insertPossibleResponse($response);
$query = "INSERT INTO Propose(question, possibleResponse) VALUES(:question, :possibleResponse)";
$this->connection->executeQuery($query, array(
':question' => array($idQuestion, PDO::PARAM_INT),
':possibleResponse' => array($idPossibleResponse, PDO::PARAM_INT)
));
foreach ($categories as $keyword) {
$gatewayForm = new GatewayForm();
$gatewayForm->assignKeywordToQuestion($keyword, $response, $idQuestion);
}
return $idQuestion;
}
/**
* Permet de supprimer une question dans la base ainsi que ses dépendances
*
* @param Question $question Information de la question à supprimer
*
* @return void
*/
public function deleteQuestion(Question $question): void
{
if (get_class($question) == BoxQuestion::class) {
$query = "DELETE FROM Propose WHERE question = :id";
$this->connection->executeQuery($query, array(
':id' => array($question->getId(), PDO::PARAM_INT)
));
$listPossibleResponse = $question->getPossibleResponses();
for ($i = 0; $i < count($listPossibleResponse); $i++) {
$gatewayPossibleResponse = new GatewayPossibleResponse();
$gatewayPossibleResponse->deletePossibleResponse($listPossibleResponse[$i]->getId());
}
}
$query = "DELETE FROM Question WHERE id = :id";
$this->connection->executeQuery($query, array(
':id' => array($question->getId(), PDO::PARAM_INT)
));
}
/**
* Permet de modifier dans la base de données les informations de la question.
*
* @param Question $question Question modifier à changer en base
*
* @return void
*/
public function updateQuestion(Question $question): void
{
$query = "UPDATE Question SET content = :content, type = :type, form = :frm WHERE id = :id";
$this->connection->executeQuery($query, array(
':content' => array($question->getContent(), PDO::PARAM_STR),
':type' => array(get_class($question), PDO::PARAM_STR),
':frm' => array($question->getForm(), PDO::PARAM_STR),
':id' => array($question->getId(), PDO::PARAM_STR)
));
}
/**
* Permet de récupérer toutes les questions, possibles réponses et catégories associées d'un formualire cible.
*
* @param string $idForm Id du formulaire
*
* @return array Retourne une liste qui pour
* l'indice 0 la liste des questions
* l'indice 1 une liste de liste de réponses, qui pour chaque même indice correspond à la liste des réponses possibles de la question
* l'indice 2 une liste de liste de liste de catégories qui pour chaque indice de questions,
* on a une liste de liste de catégories qui pour chaque indice de réponses est associer une liste de catégories
* Ou vide s'il n'y a pas de question dans la base
*/
public function getAllQuestions(string $idForm): array
{
$query = "SELECT * FROM Question WHERE form = :fom";
$this->connection->executeQuery($query, array(
':fom' => array($idForm, PDO::PARAM_INT)
));
$listQuestions = $this->connection->getResults();
$possibleResponsesContent = [];
$keywordsResponses = [];
$gatewayKeyword = new GatewayKeyword();
$gatewayPossibleResponse = new GatewayPossibleResponse();
if (!empty($listQuestions)) {
for ($i = 0; $i < count($listQuestions); $i++) {
if ($listQuestions[$i]["type"] != "BusinessClass/TextQuestion") {
$idQuestion = $listQuestions[$i]["id"];
$possibleResponses = $gatewayPossibleResponse->getPossibleResponseByQuestion($idQuestion);
$tmpTabKeyword = [];
$tmpTabPossibleResponse = [];
foreach ($possibleResponses as $row) {
$tmpTabKeyword[] = $gatewayKeyword->getKeywordsContentByReference($row["id"]);
$tmpTabPossibleResponse[] = $row["content"];
}
$possibleResponsesContent[] = $tmpTabPossibleResponse;
$keywordsResponses[] = $tmpTabKeyword;
} else {
$possibleResponsesContent[] = null;
$keywordsResponses[] = null;
}
}
return array($listQuestions, $possibleResponsesContent, $keywordsResponses);
}
return array();
}
/**
* Permet de récupérer le contenu d'une réponse à une question par son id.
*
* @param string $id Id de la question cible
*
* @return string Retourne le contenu de la question ciblé
*/
public function getQuestionContentById(string $id): string
{
$query = "SELECT content FROM Question WHERE id = :id";
$this->connection->executeQuery($query, array(
':id' => array($id, PDO::PARAM_INT)
));
return $this->connection->getResults()[0][0];
}
}

@ -1,142 +0,0 @@
<?php
namespace API\script\Gateway;
use 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()
{
$this->connection = connect();
}
/**
* 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->getResponsesByIdListCandidate($listResponsesOfCandidateId);
$tab = [];
foreach ($result as $row) {
$tab[] = (new GatewayKeyword())->getKeywordsContentByCategorieze($row['id']);
}
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.responsesCandidate = :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($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";
$this->connection->executeQuery($query, array(
':id' => array($responseId, PDO::PARAM_INT)
));
$query = "DELETE FROM Submit WHERE response = :id";
$this->connection->executeQuery($query, array(
':id' => array($responseId, PDO::PARAM_INT)
));
$query = "DELETE FROM Response WHERE id = :id";
$this->connection->executeQuery($query, array(
':id' => array($responseId, PDO::PARAM_INT)
));
}
/**
* 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)";
$this->connection->executeQuery($query, array(
':content' => array($content, PDO::PARAM_STR),
':questionContent' => array($questionContent, PDO::PARAM_STR)
));
$idResponse = $this->connection->lastInsertId();
foreach ($category as $keyword) {
$query = "INSERT INTO Categorize (response, keyword) VALUES(:response, :keyword)";
$this->connection->executeQuery($query, array(
':response' => array($idResponse, PDO::PARAM_STR),
':keyword' => array($keyword, PDO::PARAM_STR)
));
}
return $idResponse;
}
}

@ -2,7 +2,6 @@
"name": "dorian/config",
"description": "composer for guzzle client",
"require": {
"guzzle/guzzle": "^3.9",
"guzzlehttp/psr7": "^2.4",
"guzzlehttp/guzzle": "^7.5"
}

@ -4,108 +4,8 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "453f177e189a55adc413c1f52956898c",
"content-hash": "3dca324180ba7c8b11cc23a565f02dff",
"packages": [
{
"name": "guzzle/guzzle",
"version": "v3.9.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle3.git",
"reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle3/zipball/0645b70d953bc1c067bbc8d5bc53194706b628d9",
"reference": "0645b70d953bc1c067bbc8d5bc53194706b628d9",
"shasum": ""
},
"require": {
"ext-curl": "*",
"php": ">=5.3.3",
"symfony/event-dispatcher": "~2.1"
},
"replace": {
"guzzle/batch": "self.version",
"guzzle/cache": "self.version",
"guzzle/common": "self.version",
"guzzle/http": "self.version",
"guzzle/inflection": "self.version",
"guzzle/iterator": "self.version",
"guzzle/log": "self.version",
"guzzle/parser": "self.version",
"guzzle/plugin": "self.version",
"guzzle/plugin-async": "self.version",
"guzzle/plugin-backoff": "self.version",
"guzzle/plugin-cache": "self.version",
"guzzle/plugin-cookie": "self.version",
"guzzle/plugin-curlauth": "self.version",
"guzzle/plugin-error-response": "self.version",
"guzzle/plugin-history": "self.version",
"guzzle/plugin-log": "self.version",
"guzzle/plugin-md5": "self.version",
"guzzle/plugin-mock": "self.version",
"guzzle/plugin-oauth": "self.version",
"guzzle/service": "self.version",
"guzzle/stream": "self.version"
},
"require-dev": {
"doctrine/cache": "~1.3",
"monolog/monolog": "~1.0",
"phpunit/phpunit": "3.7.*",
"psr/log": "~1.0",
"symfony/class-loader": "~2.1",
"zendframework/zend-cache": "2.*,<2.3",
"zendframework/zend-log": "2.*,<2.3"
},
"suggest": {
"guzzlehttp/guzzle": "Guzzle 5 has moved to a new package name. The package you have installed, Guzzle 3, is deprecated."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.9-dev"
}
},
"autoload": {
"psr-0": {
"Guzzle": "src/",
"Guzzle\\Tests": "tests/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Guzzle Community",
"homepage": "https://github.com/guzzle/guzzle/contributors"
}
],
"description": "PHP HTTP client. This library is deprecated in favor of https://packagist.org/packages/guzzlehttp/guzzle",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"support": {
"issues": "https://github.com/guzzle/guzzle3/issues",
"source": "https://github.com/guzzle/guzzle3/tree/master"
},
"abandoned": "guzzlehttp/guzzle",
"time": "2015-03-18T18:23:50+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "7.5.0",
@ -707,69 +607,6 @@
}
],
"time": "2023-03-01T10:25:55+00:00"
},
{
"name": "symfony/event-dispatcher",
"version": "v2.8.52",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
"reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a77e974a5fecb4398833b0709210e3d5e334ffb0",
"reference": "a77e974a5fecb4398833b0709210e3d5e334ffb0",
"shasum": ""
},
"require": {
"php": ">=5.3.9"
},
"require-dev": {
"psr/log": "~1.0",
"symfony/config": "^2.0.5|~3.0.0",
"symfony/dependency-injection": "~2.6|~3.0.0",
"symfony/expression-language": "~2.6|~3.0.0",
"symfony/stopwatch": "~2.3|~3.0.0"
},
"suggest": {
"symfony/dependency-injection": "",
"symfony/http-kernel": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.8-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\EventDispatcher\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v2.8.50"
},
"time": "2018-11-21T14:20:20+00:00"
}
],
"packages-dev": [],

@ -6,6 +6,7 @@ use BusinessClass\Form;
use Exception;
use GuzzleHttp\Client;
use GuzzleHttp\Exception\GuzzleException;
use PDOException;
/**
* Permet de développer les fonctions appelées par le controllerAdmin pour gérer
@ -47,12 +48,10 @@ class ModelAdmin
$res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getForm');
$form = json_decode($res->getBody());
if (!empty($form)) {
$res = $this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/insertQuestion?
$res = $this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/addQuestion?
content='.$questionContent.'&
classQuestion='.get_class($question).'&
idForm='.$form[0]['id'].'&
listPossibleResponse='.$question->getPossibleResponses().'&
listOfCategories='.$question->getCategories()
idForm='.$form[0]['id']
);
return json_decode($res->getBody());
}
@ -68,9 +67,8 @@ class ModelAdmin
* Permet d'ajouter une possibilité de réponse à une question en l'assignant à des catégories.
*
* @return void
* @throws Exception
*/
/*
* TODO: Changer les gateways et savoir qui garder parce que la ça commence à me casser les couilles
public function addResponse(): void
{
$idQuestion = $_POST['idQuestion'];
@ -79,9 +77,17 @@ class ModelAdmin
if ($categories == null) {
$categories = [];
}
(new GatewayQuestion())->insertResponseInQuestion($response, $categories, $idQuestion);
try {
$this->client->request('POST', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/insertResponseInQuestion?
response='.$response.'&
categories='.$categories.'&
$idQuestion='.$idQuestion
);
}catch (GuzzleException $g){
throw new Exception($g->getMessage(),$g->getCode(),$g);
}
}
*/
/**
* Permet de créer un nouveau formulaire en précisant son titre et sa description.
@ -157,22 +163,19 @@ class ModelAdmin
*/
public function getQuestions(): array
{
if((new GatewayForm())->existsForm()) {
$idForm = (new GatewayForm())->getForm()[0]["id"];
$questionsArray = (new GatewayQuestion())->getAllQuestions($idForm);
return Factory::getBuiltObjects($questionsArray, "Question");
}
else {
return array();
}
try {
$res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getForm');
$idForm = json_decode($res->getBody())[0]["id"];
$res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getAllQuestions?
try {
$res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/existsForm');
if (json_decode($res->getBody())){
$res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getForm');
$idForm = json_decode($res->getBody())[0]["id"];
$res = $this->client->request('GET', 'https://codefirst.iut.uca.fr/containers/Temoignages-deploy_api_form/getAllQuestions?
idForm='.$idForm
);
$questionsArray = json_decode($res->getBody());
return Factory::getBuiltObjects($questionsArray, "Question");
);
$questionsArray = json_decode($res->getBody());
return Factory::getBuiltObjects($questionsArray, "Question");
}else{
return array();
}
}catch (GuzzleException $g){
throw new Exception($g->getMessage(),$g->getCode(),$g);
}

Loading…
Cancel
Save