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);
 }
Example #2
0
 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);
 }