Example #1
0
 public static function mapPublicPlaylistSummary(Playlist $playlist)
 {
     $userData = ['stats' => ['views' => 0, 'downloads' => 0], 'is_favourited' => false];
     if (Auth::check() && $playlist->users->count()) {
         $userRow = $playlist->users[0];
         $userData = ['stats' => ['views' => (int) $userRow->view_count, 'downloads' => (int) $userRow->download_count], 'is_favourited' => (bool) $userRow->is_favourited];
     }
     return ['id' => (int) $playlist->id, 'track_count' => $playlist->track_count, 'title' => $playlist->title, 'slug' => $playlist->slug, 'created_at' => $playlist->created_at->format('c'), 'is_public' => (bool) $playlist->is_public, 'stats' => ['views' => (int) $playlist->view_count, 'downloads' => (int) $playlist->download_count, 'comments' => (int) $playlist->comment_count, 'favourites' => (int) $playlist->favourite_count], 'covers' => ['small' => $playlist->getCoverUrl(Image::SMALL), 'normal' => $playlist->getCoverUrl(Image::NORMAL), 'original' => $playlist->getCoverUrl(Image::ORIGINAL)], 'url' => $playlist->url, 'user' => ['id' => (int) $playlist->user->id, 'name' => $playlist->user->display_name, 'url' => $playlist->user->url], 'user_data' => $userData, 'permissions' => ['delete' => Auth::check() && Auth::user()->id == $playlist->user_id, 'edit' => Auth::check() && Auth::user()->id == $playlist->user_id]];
 }