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 getPinned() { $query = Playlist::userDetails()->with('tracks', 'tracks.cover', 'tracks.user', 'user')->join('pinned_playlists', function ($join) { $join->on('playlist_id', '=', 'playlists.id'); })->where('pinned_playlists.user_id', '=', Auth::user()->id)->orderBy('title', 'asc')->select('playlists.*')->get(); $playlists = []; foreach ($query as $playlist) { $mapped = Playlist::mapPublicPlaylistSummary($playlist); $mapped['description'] = $playlist->description; $mapped['is_pinned'] = true; $playlists[] = $mapped; } return Response::json($playlists, 200); }