예제 #1
0
 /**
  * @Route("/v1/translate", name="route.api.v1.translate")
  * @Method("POST")
  */
 public function translateAction(Request $request)
 {
     $englishVocabulary = $this->vocabularyNormalizer->normalize($request->query->get('vocabulary'));
     if (!$englishVocabulary) {
         throw new BadRequestHttpException('Vocabulary not defined');
     }
     $translationList = $this->seznamSlovnikApiTranslator->translate($englishVocabulary, SlovnikApiTranslator::TRANSLATE_EN2CZ);
     $currentUser = $this->currentUserGetter->getUserEntity();
     $userVocabulary = $this->translatorFacade->findVocabulary($englishVocabulary, $currentUser);
     if (!$userVocabulary) {
         $userVocabulary = new UserVocabulary();
     }
     return new JsonResponse(['translations' => $translationList->getTranslationsByOriginalWord($englishVocabulary), 'userVocabularyId' => $userVocabulary->getId(), 'userTranslation' => $userVocabulary->getUserTranslation(), 'explanation' => $userVocabulary->getExplanation(), 'note' => $userVocabulary->getNote()]);
 }
예제 #2
0
 public function storeAnswer($answeredCorrectly, UserVocabulary $userVocabulary)
 {
     $now = $this->dateTimeFactory->getCurrentDateTime();
     $answer = new Answer($answeredCorrectly, $userVocabulary, $now->toDateTime());
     $this->answerRepository->save($answer);
     if ($answeredCorrectly && $userVocabulary->getCorrectAnswers() < $this->correctAnswersLimit) {
         $userVocabulary->setLastCorrectAnswerAt($now->toDateTime());
         $userVocabulary->increaseCorrectAnswers();
         $this->userVocabularyRepository->save($userVocabulary);
     } else {
         if (!$answeredCorrectly) {
             $userVocabulary->resetCorrectAnswers();
             $this->userVocabularyRepository->save($userVocabulary);
         }
     }
 }
 private function createUserVocabulary(Vocabulary $vocabulary, $userTranslation, $note, User $user)
 {
     $now = $this->dateTimeFactory->getCurrentDateTime();
     $userVocabulary = new UserVocabulary();
     $userVocabulary->setUser($user);
     $userVocabulary->setVocabulary($vocabulary);
     $userVocabulary->setUserTranslation($userTranslation);
     $userVocabulary->setNote($note);
     $userVocabulary->setCreatedAt($now->toDateTime());
     $this->userVocabularyRepository->save($userVocabulary);
     return $userVocabulary;
 }