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 fractal_collection_array($beatmaps, new BeatmapSetTransformer(), 'difficulties');
 }
Exemple #2
0
 public function search()
 {
     $current_user = Auth::user();
     if (is_null($current_user)) {
         $data = new Collection([]);
     } 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);
         $data = new Collection(BeatmapSet::search($params), new BeatmapSetTransformer());
     }
     $fractal = new Manager();
     $beatmaps = $fractal->createData($data)->toArray();
     return $beatmaps;
 }