cycle complet de jeu

This commit is contained in:
Simon Vieille 2016-01-13 22:55:59 +01:00
parent 0c79a9deb9
commit 88ccba0cf9
2 changed files with 36 additions and 10 deletions

View file

@ -12,6 +12,8 @@ use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use DateTime; use DateTime;
use Symfony\Component\Form\Extension\Core\Type\TextareaType; use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Constraints\NotBlank;
use Mmi\Bundle\EnigmaBundle\Entity\Timer;
use Mmi\Bundle\EnigmaBundle\Entity\Awnser;
class DefaultController extends Controller class DefaultController extends Controller
{ {
@ -64,14 +66,15 @@ class DefaultController extends Controller
} }
$timer = $this $timer = $this
->getDoctrine()
->getRepository('MmiEnigmaBundle:Timer') ->getRepository('MmiEnigmaBundle:Timer')
->findOneBy([ ->findOneBy([
'team_id' => $this->getUser()->getId(), 'team' => $this->getUser(),
'enigma_id' => $enigma->getId(), 'enigma' => $enigma,
]); ]);
if ($timer !== null) { if ($timer !== null) {
if (time() - $timer->getDate()->getTimestamp() < 60 * 30) { if (time() - $timer->getDate()->getTimestamp() >= 60 * 30) {
return $this->redirectToRoute('enigma_too_late'); return $this->redirectToRoute('enigma_too_late');
} }
} else { } else {
@ -79,23 +82,26 @@ class DefaultController extends Controller
$timer $timer
->setTeam($this->getUser()) ->setTeam($this->getUser())
->setEnigma($enigma) ->setEnigma($enigma)
->setDate(new DateTime('now')) ->setDate(new DateTime('now'));
->save();
$em = $this->getDoctrine()->getManager();
$em->merge($timer);
$em->flush();
} }
$answer = $this $answer = $this
->getDoctrine() ->getDoctrine()
->getRepository('MmiEnigmaBundle:Awnser') ->getRepository('MmiEnigmaBundle:Awnser')
->findOneBy([ ->findOneBy([
'team_id' => $this->getUser()->getId(), 'team' => $this->getUser(),
'enigma_id' => $enigma->getId(), 'enigma' => $enigma,
]); ]);
if ($answer !== null) { if ($answer !== null) {
return $this->redirectToRoute('enigma_answered'); return $this->redirectToRoute('enigma_answered');
} }
$form = $this->createFormBuilder() $form = $this->createFormBuilder($answer = new Awnser())
->add('content', TextareaType::class, [ ->add('content', TextareaType::class, [
'required' => true, 'required' => true,
'constraints' => [ 'constraints' => [
@ -109,16 +115,35 @@ class DefaultController extends Controller
$form->handleRequest($request); $form->handleRequest($request);
if ($form->isValid()) { if ($form->isValid()) {
$form->getData()->save(); // $answer = $form->getData();
$answer
->setTeam($this->getUser())
->setDate(new DateTime('now'))
->setEnigma($enigma);
$em = $this->getDoctrine()->getManager();
$em->merge($answer);
$em->flush();
} }
return $this->redirectToRoute('enigma_ok');
} }
return [ return [
'form' => $form->createView(), 'form' => $form->createView(),
'enigma' => $enigma, 'enigma' => $enigma,
]; ];
} }
/**
* @Route("/enigma/ok", name="enigma_ok")
* @Template()
*/
public function okAction()
{
return [];
}
/** /**
* @Route("/enigma/oklm", name="enigma_too_late") * @Route("/enigma/oklm", name="enigma_too_late")
* @Template() * @Template()

View file

@ -0,0 +1 @@
Enregistré !