Marge Gateway into FactoryQuestion
continuous-integration/drone/push Build is passing Details

LoginModification
alexi 2 years ago
parent cdf2bcac4f
commit c3e28166b6

@ -4,6 +4,7 @@ namespace API\script\Gateway;
use API\script\Config\Connection; use API\script\Config\Connection;
use BusinessClass\Keyword; use BusinessClass\Keyword;
use PDO;
class GatewayKeyword class GatewayKeyword
{ {
@ -14,20 +15,19 @@ class GatewayKeyword
$this->connection = connect(); $this->connection = connect();
} }
public function insertKeyword(Keyword $keyword) public function insertKeyword(string $keyword)
{ {
$query = "INSERT INTO Keyword(id, word) VALUES(:id, :word)"; $query = "INSERT INTO Keyword(word) VALUES(:word)";
$this->connection->executeQuery($query, array( $this->connection->executeQuery($query, array(
':id' => array($keyword->getId(), PDO::PARAM_INT), ':word' => array($keyword, PDO::PARAM_STR)
':word' => array($keyword->getWord(), PDO::PARAM_INT)
)); ));
} }
public function deleteKeyword(Keyword $keyword) public function deleteKeyword(string $keyword)
{ {
$query = "DELETE FROM Keyword WHERE id = :id"; $query = "DELETE FROM Keyword WHERE word = :word";
$this->connection->executeQuery($query, array( $this->connection->executeQuery($query, array(
':id' => array($keyword->getId(), PDO::PARAM_INT) ':word' => array($keyword, PDO::PARAM_STR)
)); ));
} }
@ -38,4 +38,22 @@ class GatewayKeyword
return $this->connection->getResults(); return $this->connection->getResults();
} }
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)
));
$tab = [];
foreach ($this->connection->getResults() as $result)
{
$tab[] = $result["word"];
}
return $tab;
}
} }

@ -14,7 +14,7 @@ class GatewayResponse
$this->connection = connect(); $this->connection = connect();
} }
public function getResponsesByIdListCandidate(int $listResponsesOfCandidateId) public function getResponsesByIdListCandidate(int $listResponsesOfCandidateId): array
{ {
$result = $this->getResponsesIdByIdListCandidate($listResponsesOfCandidateId); $result = $this->getResponsesIdByIdListCandidate($listResponsesOfCandidateId);
@ -26,7 +26,7 @@ class GatewayResponse
return array($result, $tab); return array($result, $tab);
} }
public function getResponsesIdByIdListCandidate(int $listResponsesOfCandidateId) public function getResponsesIdByIdListCandidate(int $listResponsesOfCandidateId): array
{ {
$query = "SELECT r.id FROM Response r, Submit s WHERE s.responseCandidate = :id AND r.id = s.response"; $query = "SELECT r.id FROM Response r, Submit s WHERE s.responseCandidate = :id AND r.id = s.response";
$this->connection->executeQuery($query, array( $this->connection->executeQuery($query, array(
@ -53,7 +53,7 @@ class GatewayResponse
)); ));
} }
public function insertResponse(string $content, string $question, array $category): void public function insertResponse(string $content, string $question, array $category): int
{ {
$query = "INSERT INTO Response(content, question) VALUES (:content, :question)"; $query = "INSERT INTO Response(content, question) VALUES (:content, :question)";
$this->connection->executeQuery($query, array( $this->connection->executeQuery($query, array(
@ -70,5 +70,7 @@ class GatewayResponse
'keyword' => array($keyword, PDO::PARAM_STR) 'keyword' => array($keyword, PDO::PARAM_STR)
)); ));
} }
return $idResponse;
} }
} }

@ -10,24 +10,28 @@ class FactoryQuestion extends Factory
public function create(array $results): array public function create(array $results): array
{ {
$questions = []; $questions = [];
for($i = 0; $i < count($results[0]); $i++) if($results[0] != null)
{ {
if(strcmp($results[0][$i]['type'], "BusinessClass\TextQuestion") == 0) for($i = 0; $i < count($results[0]); $i++)
{ {
$questions[] = new TextQuestion($results[0][$i]['content'], $results[0][$i]['id']); if(strcmp($results[0][$i]['type'], "BusinessClass\TextQuestion") == 0)
} {
else $questions[] = new TextQuestion($results[0][$i]['content'], $results[0][$i]['id']);
{ }
$possiblesResponses = $results[1][$i]; else
$content = $results[0][$i]['content']; {
$possiblesResponses = $results[1][$i];
$content = $results[0][$i]['content'];
$categories = $results[2][$i]; $categories = $results[2][$i];
$id = $results[0][$i]['id']; $id = $results[0][$i]['id'];
$questions[] = new $results[0][$i]['type']($possiblesResponses, $content, $categories, $id); $questions[] = new $results[0][$i]['type']($possiblesResponses, $content, $categories, $id);
}
} }
} }
return $questions; return $questions;
} }
} }

@ -4,6 +4,7 @@ namespace Model;
use API\script\Gateway\GatewayForm; use API\script\Gateway\GatewayForm;
use API\script\Gateway\GatewayQuestion; use API\script\Gateway\GatewayQuestion;
use API\script\Gateway\GatewayResponse;
use BusinessClass\TextQuestion; use BusinessClass\TextQuestion;
class ModelCandidate class ModelCandidate
@ -35,10 +36,7 @@ class ModelCandidate
var_dump($category); var_dump($category);
echo "<br><br>"; echo "<br><br>";
for($i = 0; $i < count($answer); $i++) (new GatewayResponse())->insertResponse($id, $answer, $category);
{
// (new GatewayResponse())->insertResponse($id[$i], $answer[$i], $category[$i]);
}
} }
public function getForm(): string public function getForm(): string

Loading…
Cancel
Save