diff --git a/app/Http/Controllers/Api/Web/ArtistsController.php b/app/Http/Controllers/Api/Web/ArtistsController.php index 96e38554..5999432e 100644 --- a/app/Http/Controllers/Api/Web/ArtistsController.php +++ b/app/Http/Controllers/Api/Web/ArtistsController.php @@ -195,18 +195,7 @@ class ArtistsController extends ApiControllerBase $users = []; foreach ($query->get() as $user) { - $users[] = [ - 'id' => $user->id, - 'name' => $user->display_name, - 'slug' => $user->slug, - 'url' => $user->url, - 'is_archived' => $user->is_archived, - 'avatars' => [ - 'small' => $user->getAvatarUrl(Image::SMALL), - 'normal' => $user->getAvatarUrl(Image::NORMAL) - ], - 'created_at' => $user->created_at - ]; + $users[] = User::mapPublicUserSummary($user); } return Response::json(["artists" => $users, "current_page" => $page, "total_pages" => ceil($count / $perPage)], diff --git a/app/Http/Controllers/Api/Web/SearchController.php b/app/Http/Controllers/Api/Web/SearchController.php index 367e08a4..f2304bf0 100644 --- a/app/Http/Controllers/Api/Web/SearchController.php +++ b/app/Http/Controllers/Api/Web/SearchController.php @@ -30,9 +30,7 @@ class SearchController extends ApiControllerBase { public function getSearch(Search $search) { - $input = Input::all(); - - $results = $search->searchAllContent($input['query']); + $results = $search->searchAllContent(Input::query('query')); return Response::json([ 'results' => $results, diff --git a/app/Library/Search.php b/app/Library/Search.php index f28e5f9a..6e31a1ab 100644 --- a/app/Library/Search.php +++ b/app/Library/Search.php @@ -117,7 +117,7 @@ class Search { $tracks = $this->transformTracks($results['responses'][0]['hits']['hits']); $albums = $this->transformAlbums($results['responses'][1]['hits']['hits']); $playlists = $this->transformPlaylists($results['responses'][2]['hits']['hits']); - $users = $this->transformToEloquent(User::class, $results['responses'][3]['hits']['hits']); + $users = $this->transformUsers($results['responses'][3]['hits']['hits']); return [ 'tracks' => $tracks, @@ -137,20 +137,28 @@ class Search { protected function transformAlbums(array $searchHits) { $albums = $this->transformToEloquent(Album::class, $searchHits); - $albums = $albums->map(function (Album $track) { - return Album::mapPublicAlbumSummary($track); + $albums = $albums->map(function (Album $album) { + return Album::mapPublicAlbumSummary($album); }); return $albums; } protected function transformPlaylists(array $searchHits) { $playlists = $this->transformToEloquent(Playlist::class, $searchHits); - $playlists = $playlists->map(function (Playlist $track) { - return Playlist::mapPublicPlaylistSummary($track); + $playlists = $playlists->map(function (Playlist $playlist) { + return Playlist::mapPublicPlaylistSummary($playlist); }); return $playlists; } + protected function transformUsers(array $searchHits) { + $users = $this->transformToEloquent(User::class, $searchHits); + $users = $users->map(function (User $user) { + return User::mapPublicUserSummary($user); + }); + return $users; + } + /** * Transforms the given Elasticsearch results into a collection of corresponding * Eloquent models. diff --git a/app/Models/User.php b/app/Models/User.php index d2f77bfd..0a656b57 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -251,6 +251,21 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon return false; } + public static function mapPublicUserSummary(User $user) { + return [ + 'id' => $user->id, + 'name' => $user->display_name, + 'slug' => $user->slug, + 'url' => $user->url, + 'is_archived' => $user->is_archived, + 'avatars' => [ + 'small' => $user->getAvatarUrl(Image::SMALL), + 'normal' => $user->getAvatarUrl(Image::NORMAL) + ], + 'created_at' => $user->created_at + ]; + } + /** * Returns this model in Elasticsearch-friendly form. The array returned by * this method should match the current mapping for this model's ES type. diff --git a/public/templates/artists/list.html b/public/templates/artists/list.html index b18a502f..48635e61 100644 --- a/public/templates/artists/list.html +++ b/public/templates/artists/list.html @@ -1,21 +1,3 @@