Exemplo n.º 1
0
 public static function submitFlag($team, $task, $flag)
 {
     if (Tasks::isTaskAccepted($team, $task)) {
         return true;
     }
     $model = Tasks::find()->where(["id" => $task])->one();
     if (!$model) {
         return false;
     }
     if ($model->visible !== 1) {
         return false;
     }
     $request = new Requests();
     $request->user_id = $team;
     $request->task_id = $task;
     $request->answer = $flag;
     $task_is_accepted = false;
     if ($model->checker_name === 0) {
         $task_is_accepted = $flag === $model->answer;
     } else {
         $main_checker = new MainChecker();
         $task_is_accepted = $main_checker->checkFlag($model->checker_name, $flag);
     }
     if ($task_is_accepted === true) {
         Tasks::givePoints($team, $task);
         $request->result = 1;
         $request->save();
         $tasks_open = Tasks::find()->where(["category" => $model->category])->andWhere('position = :position+1', [':position' => $model->position])->orderBy("position")->all();
         foreach ($tasks_open as $task_open) {
             $task_open->visible = 1;
             $task_open->save();
         }
         return true;
     } else {
         $request->result = 0;
         $request->save();
         return false;
     }
 }