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'); }