|
|
|
@ -16,7 +16,7 @@ class AdminModel
|
|
|
|
|
|
|
|
|
|
public function addNewEnigmeSolo(string $nom,string $enonce,string $aide,string $rappel,string $exemple,string $test,string $solution, string $prompt) : Enigme
|
|
|
|
|
{
|
|
|
|
|
$last = $this->enigme_gateway->findLastEnigma();
|
|
|
|
|
$last = $this->enigme_gateway->findLastEnigmaByOrdre();
|
|
|
|
|
if ($last != null){
|
|
|
|
|
$ordre = $last[0]->getOrdre() + 1;
|
|
|
|
|
} else {
|
|
|
|
@ -44,11 +44,32 @@ async function submit(){
|
|
|
|
|
return $tabEnigme[0];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function majOrdreAfterDelete(int $ordre){
|
|
|
|
|
$lesEnigmes = $this->enigme_gateway->findSoloEnigma();
|
|
|
|
|
if ($lesEnigmes == null) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
$lastOrdre = $this->enigme_gateway->findLastEnigmaByOrdre()[0]->getOrdre();
|
|
|
|
|
if ($ordre > $lastOrdre) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
foreach ($lesEnigmes as $enigme) {
|
|
|
|
|
if ($enigme->getOrdre() <= $ordre) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
$enigme->setOrdre($enigme->getOrdre()-1);
|
|
|
|
|
$this->enigme_gateway->update($enigme);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function deleteEnigme(int $id) : void
|
|
|
|
|
{
|
|
|
|
|
$nom = $this->enigme_gateway->findById($id)[0]->getNom();
|
|
|
|
|
$enigme = $this->enigme_gateway->findById($id)[0];
|
|
|
|
|
$nom = $enigme->getNom();
|
|
|
|
|
$ordre = $enigme->getOrdre();
|
|
|
|
|
$this->enigme_gateway->delete($id);
|
|
|
|
|
unlink('View/src/JS/'.$nom.'.js');
|
|
|
|
|
$this->majOrdreAfterDelete($ordre);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function getEnigmesSolo() : array
|
|
|
|
@ -91,20 +112,19 @@ async function submit(){
|
|
|
|
|
$lesNombres = array();
|
|
|
|
|
foreach ($lesOrdres as $ordre) {
|
|
|
|
|
if ($ordre[1] < 1) {
|
|
|
|
|
return false;
|
|
|
|
|
throw new Exception("Aucune énigme ne peut avoir un ordre inférieur à 1");
|
|
|
|
|
}
|
|
|
|
|
$lesNombres[] = $ordre[1];
|
|
|
|
|
}
|
|
|
|
|
sort($lesNombres);
|
|
|
|
|
if ($lesNombres[0] != 1) {
|
|
|
|
|
return false;
|
|
|
|
|
throw new Exception("La première énigme doit avoir un ordre de 1");
|
|
|
|
|
}
|
|
|
|
|
$last = end($lesNombres);
|
|
|
|
|
$i = 0;
|
|
|
|
|
while ($i < $last) {
|
|
|
|
|
if ($lesNombres[$i] != $i+1) {
|
|
|
|
|
echo "Error";
|
|
|
|
|
return false;
|
|
|
|
|
throw new Exception("L'ordre des énigmes doit être consécutif");
|
|
|
|
|
}
|
|
|
|
|
$i++;
|
|
|
|
|
}
|
|
|
|
|