public function getAlbums() { $query = Favourite::whereUserId(Auth::user()->id)->whereNotNull('album_id')->with(['album' => function ($query) { $query->userDetails(); }, 'album.user', 'album.user.avatar', 'album.cover']); $albums = []; foreach ($query->get() as $fav) { if ($fav->album == null) { continue; } $albums[] = Album::mapPublicAlbumSummary($fav->album); } return Response::json(["albums" => $albums], 200); }
public function getContent($slug) { $user = User::whereSlug($slug)->first(); if (!$user) { App::abort(404); } $query = Track::summary()->published()->listed()->explicitFilter()->with('genre', 'cover', 'user')->userDetails()->whereUserId($user->id)->whereNotNull('published_at'); $tracks = []; $singles = []; foreach ($query->get() as $track) { if ($track->album_id != null) { $tracks[] = Track::mapPublicTrackSummary($track); } else { $singles[] = Track::mapPublicTrackSummary($track); } } $query = Album::summary()->with('user')->orderBy('created_at', 'desc')->where('track_count', '>', 0)->whereUserId($user->id); $albums = []; foreach ($query->get() as $album) { $albums[] = Album::mapPublicAlbumSummary($album); } return Response::json(['singles' => $singles, 'albumTracks' => $tracks, 'albums' => $albums], 200); }
public function getIndex() { $page = 1; if (Input::has('page')) { $page = Input::get('page'); } $query = Album::summary()->with('user', 'user.avatar', 'cover')->userDetails()->orderBy('title', 'asc')->where('track_count', '>', 0); $count = $query->count(); $perPage = 40; $query->skip(($page - 1) * $perPage)->take($perPage); $albums = []; foreach ($query->get() as $album) { $albums[] = Album::mapPublicAlbumSummary($album); } return Response::json(["albums" => $albums, "current_page" => $page, "total_pages" => ceil($count / $perPage)], 200); }