public function getPlaylists() { $query = Favourite::whereUserId(Auth::user()->id)->whereNotNull('playlist_id')->with(['playlist' => function ($query) { $query->userDetails(); }, 'playlist.user', 'playlist.user.avatar', 'playlist.tracks', 'playlist.tracks.cover']); $playlists = []; foreach ($query->get() as $fav) { if ($fav->playlist == null) { continue; } $playlists[] = Playlist::mapPublicPlaylistSummary($fav->playlist); } return Response::json(["playlists" => $playlists], 200); }
public function getFavourites($slug) { $user = User::whereSlug($slug)->first(); if (!$user) { App::abort(404); } $favs = Favourite::whereUserId($user->id)->with(['track.genre', 'track.cover', 'track.user', 'album.cover', 'album.user', 'track' => function ($query) { $query->userDetails(); }, 'album' => function ($query) { $query->userDetails(); }])->get(); $tracks = []; $albums = []; foreach ($favs as $fav) { if ($fav->type == 'Poniverse\\Ponyfm\\Models\\Track') { $tracks[] = Track::mapPublicTrackSummary($fav->track); } else { if ($fav->type == 'Poniverse\\Ponyfm\\Models\\Album') { $albums[] = Album::mapPublicAlbumSummary($fav->album); } } } return Response::json(['tracks' => $tracks, 'albums' => $albums], 200); }