diff --git a/src/Entity/QuizEntity.php b/src/Entity/QuizEntity.php new file mode 100644 index 0000000..e05a0dd --- /dev/null +++ b/src/Entity/QuizEntity.php @@ -0,0 +1,26 @@ + id_quiz = $id_quiz; + $this -> nb_questions = $nb_questions; + } + + public function getIdQuiz(): int + { + return $this -> id_quiz; + } + + public function getNbQuestions(): int + { + return $this -> nb_questions; + } +} \ No newline at end of file diff --git a/src/Gateway/QuizGateway.php b/src/Gateway/QuizGateway.php new file mode 100644 index 0000000..f98a62e --- /dev/null +++ b/src/Gateway/QuizGateway.php @@ -0,0 +1,51 @@ + co = $co; + } + + public function create(int $id_quiz, int $nb_questions) : bool + { + $query = " + INSERT INTO Quiz + VALUES (:id_q, :nb_q) + "; + + return $this -> co -> executeQuery($query, [ + ':id_q' => array($id_quiz, PDO::PARAM_INT), + ':nb_q' => array($nb_questions, PDO::PARAM_INT) + ]); + } + + public function findQuizById(int $id) : array + { + $query = "SELECT * FROM Quiz WHERE id_quiz = :id_q"; + $this -> co -> executeQuery($query, [':id_q' => array($id, PDO::PARAM_INT)]); + return $this -> co -> getResults(); + } + + public function delete(int $id) : bool + { + $query = "DELETE FROM Quiz WHERE id_quiz = :id_q"; + return $this -> co -> executeQuery($query, [':id_q' => array($id, PDO::PARAM_INT)]); + } + + public function findAll() : array + { + $query = "SELECT * FROM Quiz"; + $this -> co -> executeQuery($query); + return $this -> co -> getResults(); + } + +} \ No newline at end of file diff --git a/src/Model/QuizModel.php b/src/Model/QuizModel.php new file mode 100644 index 0000000..a80976c --- /dev/null +++ b/src/Model/QuizModel.php @@ -0,0 +1,55 @@ + gateway = $gw; + } + + public function createQuiz(int $id_quiz, int $nb_questions) : bool + { + return $this -> gateway -> create($id_quiz, $nb_questions); + } + + public function getQuiz(int $id_quiz): ?QuizEntity + { + $q = $this -> gateway -> findQuizById($id_quiz); + if ($q) { + return new QuizEntity( + $q['id_quiz'], + $q['nb_questions'], + ); + } + return null; + } + + public function deleteQuiz(int $id_quiz) : bool + { + return $this -> gateway -> delete($id_quiz); + } + + public function getAllQuiz() : array + { + $q = $this -> gateway -> findAll(); + + $quizzes = []; + + foreach ($q as $quiz) { + $quizzes[] = new QuizEntity( + $quiz['id_quiz'], + $quiz['nb_questions'] + ); + } + return $quizzes; + + } + +} \ No newline at end of file