You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.2 KiB
96 lines
2.2 KiB
<?php
|
|
|
|
namespace Model;
|
|
|
|
use Entity\ResultsEntity;
|
|
use Gateway\ResultsGateway;
|
|
|
|
class ResultsModel
|
|
{
|
|
private ResultsGateway $gw;
|
|
|
|
public function __construct(ResultsGateway $gw)
|
|
{
|
|
$this -> gw = $gw;
|
|
}
|
|
|
|
public function createResultsModel(int $idQuiz, int $idUser, int $score, int $time) : bool
|
|
{
|
|
return $this -> gw -> createResultsGateway($idQuiz, $idUser, $score, $time);
|
|
}
|
|
|
|
public function getResultsByQuiz(int $idQuiz) : array
|
|
{
|
|
$res = $this -> gw -> findResultsByQuiz($idQuiz);
|
|
|
|
$results = [];
|
|
|
|
foreach ($res as $result)
|
|
{
|
|
$results[] = new ResultsEntity (
|
|
$result['user_r'],
|
|
$result['quiz_r'],
|
|
$result['score'],
|
|
$result['time']
|
|
);
|
|
}
|
|
return $results;
|
|
}
|
|
|
|
public function getResultsByUser(int $idUser) : array
|
|
{
|
|
$res = $this -> gw -> findResultsByUser($idUser);
|
|
|
|
$results = [];
|
|
|
|
foreach ($res as $result)
|
|
{
|
|
$results[] = new ResultsEntity (
|
|
$result['user_r'],
|
|
$result['quiz_r'],
|
|
$result['score'],
|
|
$result['time']
|
|
);
|
|
}
|
|
return $results;
|
|
}
|
|
|
|
public function getResultsById(int $idQuiz, int $idUser) : ?ResultsEntity
|
|
{
|
|
$res = $this -> gw -> findResultsById($idQuiz, $idUser);
|
|
|
|
if ($res)
|
|
{
|
|
return new ResultsEntity (
|
|
$res['user_r'],
|
|
$res['quiz_r'],
|
|
$res['score'],
|
|
$res['time']
|
|
);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public function getAllResults() : array
|
|
{
|
|
$res = $this -> gw -> findAllResults();
|
|
|
|
$results = [];
|
|
|
|
foreach ($res as $result)
|
|
{
|
|
$results[] = new ResultsEntity (
|
|
$result['user_r'],
|
|
$result['quiz_r'],
|
|
$result['score'],
|
|
$result['time']
|
|
);
|
|
}
|
|
return $results;
|
|
}
|
|
|
|
public function updateResultsModel(int $idQuiz, int $idUser, ?int $score, ?int $time) : bool
|
|
{
|
|
return $this -> gw -> updateResults($idQuiz, $idUser, $score, $time);
|
|
}
|
|
} |