diff --git a/config/autoload/global.php b/config/autoload/global.php index 4f96aee..c41db4b 100755 --- a/config/autoload/global.php +++ b/config/autoload/global.php @@ -61,4 +61,8 @@ return [ // Session\Validator\HttpUserAgent::class, ], ], + + "userManager" => [ + "canRegister" => false + ], ]; diff --git a/src/module/Application/src/Controller/IndexController.php b/src/module/Application/src/Controller/IndexController.php index 9bde08a..35afa0e 100755 --- a/src/module/Application/src/Controller/IndexController.php +++ b/src/module/Application/src/Controller/IndexController.php @@ -1,18 +1,84 @@ (new \DateTime())->format("H:i:s, Y-m-d")]; + /** @var SelectWordsBot $bot */ +// $bot = $this->get(SelectWordsBot::class); +// $bot->setWebhook(""); +// $bot->handleUpdates($bot->getUpdates()); +// $bot->sendWordToCheck(); + return new ViewModel(); + } + + public function selectWordsAction() + { + /** @var WordManager $wordManager */ + $wordManager = $this->get(WordManager::class); + $wordsNotChecked = $wordManager->countNotChecked(self::LENGTH_WORDS_MIN, self::LENGTH_WORDS_MAX); + $wordsDeleted = $wordManager->countDeleted(self::LENGTH_WORDS_MIN, self::LENGTH_WORDS_MAX); + $wordsChecked = $wordManager->countChecked(self::LENGTH_WORDS_MIN, self::LENGTH_WORDS_MAX); + $wordsUnsure = $wordManager->countUnsure(self::LENGTH_WORDS_MIN, self::LENGTH_WORDS_MAX); + + $wordsToCheck = []; + for ($i = 0; $i < self::NUMBER_WORDS_TO_CHECK_SIMULTANEOUSLY; $i++) { + $wordsToCheck[] = $wordManager->getRandomWordNotChecked(self::LENGTH_WORDS_MIN, self::LENGTH_WORDS_MAX); + } + + return new ViewModel([ + "wordsNotChecked" => $wordsNotChecked, + "wordsDeleted" => $wordsDeleted, + "wordsChecked" => $wordsChecked, + "wordsUnsure" => $wordsUnsure, + "wordsToCheck" => $wordsToCheck, + ]); + } + + public function changeCheckedAction() + { + $request = $this->getRequest(); + + if (!$request->isPost()) { + return $this->triggerDispatchError(403); + } + + $wordId = $request->getPost("wordId", ""); + $action = $request->getPost("action", ""); + + /** @var WordManager $wordManager */ + $wordManager = $this->get(WordManager::class); + $word = $wordManager->getEntityById($wordId); + + if ($word == null) { + return $this->triggerDispatchError(404); + } + + $word = WordManager::doAction($word, $action); + $wordManager->save($word); + + $randomWordNotChecked = $wordManager->getRandomWordNotChecked(self::LENGTH_WORDS_MIN, self::LENGTH_WORDS_MAX); + + $this->layout("layout/ajaxData"); + $viewModel = new ViewModel(); + $viewModel->setTemplate("ajax/json"); + $viewModel->setVariable("json", [ + "result" => true, + "data" => [ + "newWord" => $wordManager->wordToArray($randomWordNotChecked), + ], + ]); + return $viewModel; } }