<?php
namespace App\Controller;
use App\Entity\Answear;
use App\Entity\Matcher;
use App\Entity\MemoryGame;
use App\Model\Settings;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\RedirectResponse;
//use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
class MainController extends AbstractController
{
/**
* @Route("/", name="app_homepage")
*/
public function homepage(): Response
{
$rank = [];
$answear = $second = null;
$quizNr = Settings::getQuizNr();
if ($this->getUser()) {
$em = $this->getDoctrine()->getManager();
$rank[1] = $em->getRepository(Answear::class)->getRank(1,3);
$rank[2] = $em->getRepository(Answear::class)->getRank(2,3);
$rank[3] = $em->getRepository(Answear::class)->getRank(3,3);
$rank[4] = $em->getRepository(Answear::class)->getRank(4,3);
$answear = $em
->getRepository(Answear::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr], ['id' => 'DESC']);
if(in_array($quizNr,[2,4])) {
$second = $em
->getRepository(Matcher::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
} else {
$second = $em
->getRepository(MemoryGame::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
}
}
return $this->render('page/homepage.html.twig', [
'rank' => $rank,
'answear' => $answear,
'second' => $second,
'quiz' => $quizNr,
]);
}
/**
* @Route("/summary", name="app_summary")
*/
public function summary(): Response
{
$em = $this->getDoctrine()->getManager();
$quizNr = Settings::getQuizNr();
$answear = $em
->getRepository(Answear::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
if(in_array($quizNr,[2,4])) {
$second = $em
->getRepository(Matcher::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
} else {
$second = $em
->getRepository(MemoryGame::class)
->findOneBy(['user' => $this->getUser(),'quiz' => $quizNr]);
}
if (!($answear instanceof Answear)) {
return new RedirectResponse($this->get('router')->generate('app_homepage'));
}
$points = $answear->getPoints() + $second->getPoints();
$place = $em
->getRepository(Answear::class)->getSummaryPosition($this->getUser(), $quizNr);
return $this->render('page/summary.html.twig', [
'points' => $points,
'place' => $place,
'quiz' => $quizNr,
]);
}
/**
* @Route("/rules", name="app_rules")
*/
public function rules(): Response
{
return $this->render('page/rules.html.twig', [
]);
}
}