Add FactoryQuestion
continuous-integration/drone/push Build is passing Details

LoginModification
Alexis 2 years ago
parent b59fc21b42
commit 9b0a096bd6

@ -0,0 +1,16 @@
<?php
namespace Model;
use BusinessClass\Question;
abstract class Factory
{
public abstract function create(array $results): array;
public static function getBuiltObjects(array $results, string $type): array
{
$type = "\\Model\\Factory".$type;
return (new $type())->create($results);
}
}

@ -0,0 +1,33 @@
<?php
namespace Model;
use BusinessClass\Question;
use BusinessClass\TextQuestion;
class FactoryQuestion extends Factory
{
public function create(array $results): array
{
$questions = [];
for($i = 0; $i < count($results[0]); $i++)
{
if(strcmp($results[0][$i]['type'], "BusinessClass\TextQuestion") == 0)
{
$questions[] = new TextQuestion($results[0][$i]['content'], $results[0][$i]['id']);
}
else
{
$possiblesResponses = $results[1][$i];
$content = $results[0][$i]['content'];
$categories = $results[2][$i];
$id = $results[0][$i]['id'];
$questions[] = new $results[0][$i]['type']($possiblesResponses, $content, $categories, $id);
}
}
return $questions;
}
}

@ -53,26 +53,7 @@ class ModelCandidate
$description = $form[0]['description'];
$questionsTab = (new GatewayQuestion())->getAllQuestions($form[0]['id']);
$questions = [];
for($i = 0; $i < count($questionsTab[0]); $i++)
{
if(strcmp($questionsTab[0][$i]['type'], "BusinessClass\TextQuestion") == 0)
{
$questions[] = new TextQuestion($questionsTab[0][$i]['content'], $questionsTab[0][$i]['id']);
}
else
{
$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);
}
}
$questions = Factory::getBuiltObjects($questionsTab, "Question");
$html = "
<h1>$title</h1>\n

Loading…
Cancel
Save