public function login()
 {
     $team = Session::get('team');
     if (empty($team)) {
         $team = TeamModel::getTeamByKey(Input::get('key'));
         if (empty($team)) {
             return array('error' => 'No team registered with this key!');
         }
         $team = $team[0];
         // put data into session
         Session::put('team', $team);
     }
     // check if there is match in progress
     $activeMatch = MatchModel::getActiveMatchForTeam($team->id);
     return array('team' => $team, 'match' => $activeMatch);
 }
예제 #2
0
 /**
  * Called to delete our last scored goal
  * (mostly for goals with middle row players)
  */
 public function deleteGoal()
 {
     $team = Session::get('team');
     if (empty($team)) {
         return array('error' => 'You are not logged in!');
     }
     // check if user is in some match, or his match finished in last 5 minutes
     $match = MatchModel::getActiveMatchForTeam($team->id, true);
     if (empty($match)) {
         return array('error' => 'You are not in match!');
     }
     $match = $match[0];
     // run this as transaction
     return DB::transaction(function () use($match, $team) {
         $forHomeTeam = $match->home_id == $team->id;
         // decrease our score
         MatchModel::deleteGoalOnMatch($match->id, $forHomeTeam);
         // update the teams goals counters, if the game was reopened
         if ($match->home_score == 10 || $match->away_score == 10) {
             $homeTeamWon = $match->home_score == 10;
             // if we try to delete goal if we didn't win
             if ($forHomeTeam != $homeTeamWon) {
                 DB::rollback();
                 return array('error' => 'You can\'t delete goal in lost match!');
             }
             MatchModel::updateTeamGoals($match->home_id, $match->away_id, $match->home_score, $match->away_score, true);
         }
         return array('status' => 'ok');
     });
 }