public function addPhraseToTraining(Request $request) { // авторизация if (!Auth::check()) { return $this->response->onAuthError(); } // валидация $paramsToValidate = array('phrase' => Input::get('phrase')); $validatorRules = array('phrase' => ['required', 'string']); $validator = Validator::make($paramsToValidate, $validatorRules); if ($validator->fails()) { return $this->response->validatorError($validator->messages()); } // добавление фразы или слова в словарь // проверка есть ли фраза уже в словаре // добавление в словарь $phrase = UserDictionary::findByPhrase(Auth::id(), Input::get('phrase')); if ($phrase) { return $this->response->onError('Phrase/word is already in your dictionary'); } UserDictionary::create(array('user_id' => Auth::id(), 'phrase' => Input::get('phrase'))); // ответ return $this->response->onSuccess('Added'); }
function directionTraining(Request $request) { // авторизация if (!Auth::check()) { return $this->response->onAuthError(); } // валидация $paramsToValidate = array('trainingName' => $request->trainingName); $validatorRules = array('trainingName' => ['required', 'string', 'in:' . \implode(',', $this->availableTrainings)]); $validator = Validator::make($paramsToValidate, $validatorRules); if ($validator->fails()) { return $this->responce->validatorError($validator->messages()); } // получение слов которые доступны для тренировки $collection = UserDictionary::where('user_id', Auth::id())->learned(false)->StageNotPassed($request->trainingName)->lastTrained($this->trainInterval)->take($this->trainWordsLimit)->get(); if ($collection->count() === 0) { return $this->responce->onSuccess([]); } // добавление перевода к словам foreach ($collection as $word) { $record = Phrase::findByPhrase($word->phrase); if (!$record) { continue; } $word->translation = $record->translate; $word->translate = $record->translate; $word->meaning = $record->meaning; } // получение произвольных слов для создания теста // вернем ответ $randomWords = Phrase::select('phrase', 'translate')->random()->take(20)->get(); return $this->responce->onSuccess(array('trainWords' => $collection->toArray(), 'randomWords' => $randomWords->toArray())); }