App\Http\Controllers\BeatmapsController::scores PHP Method

scores() public method

public scores ( $id )
    public function scores($id)
    {
        $beatmap = Beatmap::findOrFail($id);
        $mode = Request::input('mode', Beatmap::modeStr($beatmap->playmode));
        $mods = Request::input('enabledMods');
        $type = Request::input('type', 'global');
        $user = Auth::user();
        if (!is_array($mods)) {
            $mods = [];
        }
        if ($type !== 'global' || !empty($mods)) {
            if ($user === null || !$user->isSupporter()) {
                return error_popup(trans('errors.supporter_only'));
            }
        }
        try {
            $query = $beatmap->scoresBest($mode)->defaultListing()->with('user');
        } catch (\InvalidArgumentException $ex) {
            return error_popup($ex->getMessage());
        }
        $query->withMods($mods);
        switch ($type) {
            case 'country':
                $query->fromCountry($user->country_acronym);
                break;
            case 'friend':
                $query->friendsOf($user);
                break;
        }
        $scoresList = json_collection($query->get(), new ScoreTransformer(), 'user');
        if ($user !== null) {
            $score = (clone $query)->where('user_id', $user->user_id)->first();
            if ($score !== null) {
                $userScore = json_item($score, new ScoreTransformer(), 'user');
                $userScorePosition = 1 + (clone $query)->limit(null)->where('score', '>', $score->score)->count();
            }
        }
        return ['scoresList' => $scoresList, 'userScore' => $userScore ?? null, 'userScorePosition' => $userScorePosition ?? null];
    }
BeatmapsController