/**
  * Display all a user's rounds.
  *
  * @param int $userId
  * @param Request $request
  * @return Response
  */
 public function rounds($userId, Request $request)
 {
     $sort = $request->input('sort', 'date');
     $direction = $request->input('direction', 'desc');
     $user = $this->user->getUser($userId);
     $rounds = $this->round->getSortableRounds($sort, $direction, $userId);
     return view('users.rounds', compact('user', 'rounds', 'sort', 'direction'));
 }
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $userId = $request->user()->id;
     $roundId = $request->route('rounds');
     if (!$this->round->checkRoundBelongsToUser($userId, $roundId)) {
         abort(403);
     }
     return $next($request);
 }
 /**
  * Show the application dashboard to the user.
  *
  * @param Request $request
  * @return Response
  */
 public function index(Request $request)
 {
     $user = $request->user();
     $rounds = $this->round->getRoundsByUser($user->id);
     $latestRounds = $rounds->take(-5)->reverse();
     $trends = $this->user->getUserTrends($rounds);
     $feed = $this->user->getUserLatestFeed($user->id, 5);
     $chartData = [];
     foreach ($rounds as $round) {
         $chartData[] = ['date' => $round->date->format('Y-m-d'), 'strokes' => $round->totalStrokes(), 'putts' => $round->totalPutts()];
     }
     return view('home', ['rounds' => $rounds, 'latestRounds' => $latestRounds, 'chartData' => $chartData, 'trends' => $trends, 'user' => $user, 'feed' => $feed]);
 }
 /**
  * Update a round.
  *
  * @param $roundId
  * @param UpdateRoundRequest $request
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function update($roundId, UpdateRoundRequest $request)
 {
     $user = $request->user();
     $round = $this->round->update($user->id, $roundId, $request);
     $request->session()->flash('success', 'Your round has been updated.');
     return redirect(route('rounds.show', $round->id));
 }
 /**
  * Compare two users.
  * @param Request $request
  * @return Response
  */
 public function index(Request $request)
 {
     $user1Id = $request->input('user');
     $user2Id = $request->input('to');
     // todo: make sure both valid users, and they are different
     $user1 = $this->user->getUser($user1Id);
     $user2 = $this->user->getUser($user2Id);
     $user1Stats = $this->user->getUserStats($user1Id);
     $user2Stats = $this->user->getUserStats($user2Id);
     $user1BestRounds = $this->round->getBestRoundsByUser($user1Id, 5);
     $user2BestRounds = $this->round->getBestRoundsByUser($user2Id, 5);
     $users = compact('user1', 'user2');
     $stats = ['user1' => $user1Stats, 'user2' => $user2Stats];
     $bestRounds = ['user1' => $user1BestRounds, 'user2' => $user2BestRounds];
     return view('compare.index', compact('stats', 'users', 'bestRounds'));
 }
예제 #6
0
 protected function checkRoundBelongsToUser()
 {
     $userId = $this->user()->id;
     $roundId = $this->route('rounds');
     return $this->round->checkRoundBelongsToUser($userId, $roundId);
 }