middleware('auth'); } private static function colors() { return [ 'e6194b' => 'Red', '3cb44b' => 'Green', 'ffe119' => 'Yellow', '0082c8' => 'Blue', 'f58231' => 'Orange', '911eb4' => 'Purple', '46f0f0' => 'Cyan', 'f032e6' => 'Magenta', 'd2f53c' => 'Lime', 'fabebe' => 'Pink', '008080' => 'Teal', 'e6beff' => 'Lavender', 'aa6e28' => 'Brown', 'fffac8' => 'Beige', '800000' => 'Maroon', 'aaffc3' => 'Mint', '808000' => 'Olive', 'ffd8b1' => 'Coral', '000080' => 'Navy', '808080' => 'Grey', ]; } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function index() { $teams = Team::all(); $unassigned = Player::where('team_id', 0)->get(); return view('teams', [ 'teams' => $teams, 'unassigned' => $unassigned, ]); } public function create_team() { $this->authorize('admin'); // Get list of current used colors $teams = DB::table('teams')->pluck('name')->toArray(); $color_names = array_values(self::colors()); $available = array_diff($color_names, $teams); if(count($available)) { $next = array_shift($available); $colors = array_flip(self::colors()); $team = new \App\Team; $team->name = $next; $team->slug = strtolower($next); $team->color = $colors[$next]; $team->save(); return $next; } else { return ""; } } public function add_player(Request $request) { $this->authorize('admin'); try { // Look up the user ID $profile = Twitter::getUsers(['screen_name' => trim($request->input('twitter'), '@')]); // Follow the specified user Twitter::postFollow(['user_id' => $profile->id_str]); $player = Player::where('twitter_user_id', $profile->id_str)->first(); if(!$player) { $player = new Player; $player->twitter_user_id = $profile->id_str; } $player->team_id = $request->input('team'); $player->name = $profile->name; $player->twitter = $profile->screen_name; $player->photo = $profile->profile_image_url_https; $player->save(); return response()->json(['player'=>$player]); } catch(\Exception $e) { return response()->json(['error'=>$e->getMessage()]); } } }