/**
  * @Route("/api/check-score", name="checkScore")
  * @Method({"GET", "POST"})
  */
 public function checkScoreAction(Request $request)
 {
     $encodedScore = $request->query->get('v1', FALSE);
     $factor = $request->query->get('v2', FALSE);
     $separator = $request->query->get('v3', FALSE);
     if ($encodedScore && $factor && $separator) {
         $score = $this->decodeScore($encodedScore, $factor, $separator);
         $bestResults = $this->getBestResults('DESC', 10);
         $checkedScore = $this->checkScore($score, $bestResults);
         // Show save result form.
         if ($checkedScore['saveResultNeeded'] || !$bestResults && $score) {
             $scoreObj = new Score();
             $scoreObj->setScore($score);
             $form = $this->getSaveResultForm($scoreObj);
             $form->handleRequest($request);
             // Save result to database.
             if ($form->isValid()) {
                 $scoreToSave = $form->getData();
                 if (!$this->isScoreExists($scoreToSave, $bestResults)) {
                     $this->writeToDatabase($scoreToSave);
                 }
                 return $this->redirectToRoute('best');
             }
             return $this->render('bubbles/bubblesSaveResultForm.html.twig', array('score' => $score, 'position' => $checkedScore['position'], 'form' => $form->createView()));
         } else {
             return $this->redirectToRoute('home');
         }
     } else {
         throw new NotFoundHttpException();
     }
 }
 protected function isScoreExists(Score $score, $bestResults)
 {
     $result = FALSE;
     foreach ($bestResults as $scoreItem) {
         if ($score->getName() == $scoreItem->getName() && $score->getScore() == $scoreItem->getScore()) {
             $result = TRUE;
             break;
         }
     }
     return $result;
 }
Exemple #3
0
 public function load(ObjectManager $manager)
 {
     $game = new Game();
     $game->setName('name');
     $game->setDeveloper('developer');
     $player = new Player();
     $player->setName('name');
     $score = new Score();
     $score->setValue(1);
     $score->setPlayer($player);
     $score->setGame($game);
     $manager->persist($game);
     $manager->persist($player);
     $manager->persist($score);
     $manager->flush();
     self::$score = $score;
 }