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.
Scripted/WEB/Model/UserModel.php

98 lines
2.8 KiB

<?php
class UserModel
{
private EnigmeGateway $enigme_gateway;
private PartieGateway $partie_gateway;
private UtilisateurGateway $utilisateur_gateway;
function __construct()
{
try {
global $error, $view, $rep;
$this->enigme_gateway = new EnigmeGateway();
$this->partie_gateway = new PartieGateway();
$this->utilisateur_gateway = new UtilisateurGateway();
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $view['erreur']);
}
}
public function goToPresentation()
{
global $rep, $vues, $error;
try {
require($rep . $vues['presentation']);
} catch (Exception $e) {
$error = "Erreur Inconnue";
require($rep . $vues['erreur']);
}
}
public function goToHome()
{
global $rep, $vues, $error;
try {
require($rep . $vues['main']);
} catch (Exception $e) {
$error = "404";
require($rep . $vues['erreur']);
}
}
public function goToEnigme()
{
global $rep, $vues, $error;
try {
require($rep . $vues['enigme']);
} catch (Exception $e) {
$error = "404";
require($rep . $vues['erreur']);
}
}
public function goToQueue()
{
global $rep, $vues, $error;
try {
//require($rep . $vues['Queue']);
$this->addToQueue();
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function addToQueue(){
if($this->utilisateur_gateway->isAlreadyInqueue($_SESSION['utilisateur']))
{
return;
}
echo '1';
if (!$this->partie_gateway->partieInQueueExists()) {
echo '2';
$tabEnigme = $this->enigme_gateway->findMultiEnigma();
echo '3';
$idNewPartie = $this->partie_gateway->findPartieMaxId();
echo '4';
$partie=$this->partie_gateway->creerPartieMulti($idNewPartie,$tabEnigme);
}
else{
$idPartieInQueue = $this->partie_gateway->findPartieInQueue();
$tabEnigme = $this->enigme_gateway->findEnigmaFromPartie($idPartieInQueue);
$partie = $this->partie_gateway->creerPartieMulti($idPartieInQueue, $tabEnigme);
}
echo '6';
$this->utilisateur_gateway->addToQueue($_SESSION['utilisateur'],$partie);
if ($this->utilisateur_gateway->queueFilled())
{
echo "Partie is launched";
/*$this->launchGame();*/
}
}
public function logout()
{
$_SESSION['role'] = 'visitor';
header('Location: index.php');
}
}