App\Http\Controllers\BeatmapsetsController::search PHP Method

    public function search()
    {
        $current_user = Auth::user();
        $params = [];
        if (is_null($current_user)) {
            $params = ['page' => Request::input('page')];
        } else {
            $params = ['query' => Request::input('q'), 'mode' => Request::input('m'), 'status' => Request::input('s'), 'genre' => Request::input('g'), 'language' => Request::input('l'), 'extra' => array_filter(explode('-', Request::input('e')), 'strlen'), 'rank' => array_filter(explode('-', Request::input('r')), 'strlen'), 'page' => Request::input('page'), 'sort' => explode('_', Request::input('sort'))];
            if (!$current_user->isSupporter()) {
                unset($params['rank']);
            }
        }
        $params = array_filter($params, function ($v, $k) {
            if (is_array($v)) {
                return !empty($v);
            } else {
                return presence($v) !== null;
            }
        }, ARRAY_FILTER_USE_BOTH);
        $beatmaps = Beatmapset::search($params);
        return json_collection($beatmaps, new BeatmapsetTransformer(), 'beatmaps');
    }