예제 #1
0
 function saveStageResults()
 {
     // авторизация
     if (!Auth::check()) {
         return $this->responce->onAuthError();
     }
     // валидация
     $paramsToValidate = array('trainingName' => Input::get('trainingName'), 'wordId' => Input::get('wordId'), 'isSuccess' => Input::get('isSuccess'));
     $validatorRules = array('trainingName' => ['required', 'string', 'in:' . \implode(',', $this->availableTrainings)], 'wordId' => ['required', 'integer'], 'isSuccess' => ['required', 'boolean']);
     $validator = Validator::make($paramsToValidate, $validatorRules);
     if ($validator->fails()) {
         return $this->responce->validatorError($validator->messages());
     }
     // сохранение результата
     // дата последней тренировки
     // успешно прошедший тренинг
     // выучено ли слово
     $word = UserDictionary::find(Input::get('wordId'));
     if (!$word) {
         return $this->responce->onError('Word not found in your dictionary');
     }
     $dbDate = DB::select('SELECT NOW() as now');
     $word->last_trained = $dbDate[0]->now;
     $word->save();
     if (Input::get('isSuccess')) {
         if ($word->stages_passed) {
             $stagesPassed = explode(';', $word->stages_passed);
         } else {
             $stagesPassed = [];
         }
         array_push($stagesPassed, Input::get('trainingName'));
         $word->stages_passed = implode(';', $stagesPassed);
         $word->save();
         $word->is_learned = $this->allTrainingsPassed($word->stages_passed);
         $word->save();
     }
     return $this->responce->onSuccess('OK');
 }