Esempio n. 1
0
 public static function mapPublicTrackSummary(Track $track)
 {
     $userData = ['stats' => ['views' => 0, 'plays' => 0, 'downloads' => 0], 'is_favourited' => false];
     if (Auth::check() && $track->users->count()) {
         $userRow = $track->users[0];
         $userData = ['stats' => ['views' => (int) $userRow->view_count, 'plays' => (int) $userRow->play_count, 'downloads' => $userRow->download_count], 'is_favourited' => (bool) $userRow->is_favourited];
     }
     return ['id' => (int) $track->id, 'title' => $track->title, 'user' => ['id' => (int) $track->user->id, 'name' => $track->user->display_name, 'url' => $track->user->url], 'stats' => ['views' => (int) $track->view_count, 'plays' => (int) $track->play_count, 'downloads' => (int) $track->download_count, 'comments' => (int) $track->comment_count, 'favourites' => (int) $track->favourite_count], 'url' => $track->url, 'slug' => $track->slug, 'is_vocal' => $track->is_vocal, 'is_explicit' => $track->is_explicit, 'is_downloadable' => $track->is_downloadable, 'is_published' => $track->isPublished(), 'published_at' => $track->isPublished() ? $track->published_at->format('c') : null, 'duration' => $track->duration, 'genre' => $track->genre != null ? ['id' => (int) $track->genre->id, 'slug' => $track->genre->slug, 'name' => $track->genre->name] : null, 'track_type_id' => $track->track_type_id, 'covers' => ['thumbnail' => $track->getCoverUrl(Image::THUMBNAIL), 'small' => $track->getCoverUrl(Image::SMALL), 'normal' => $track->getCoverUrl(Image::NORMAL), 'original' => $track->getCoverUrl(Image::ORIGINAL)], 'streams' => ['mp3' => $track->getStreamUrl('MP3'), 'aac' => !Config::get('app.debug') || is_file($track->getFileFor('AAC')) ? $track->getStreamUrl('AAC') : null, 'ogg' => Config::get('app.debug') || is_file($track->getFileFor('OGG Vorbis')) ? $track->getStreamUrl('OGG Vorbis') : null], 'user_data' => $userData, 'permissions' => ['delete' => Auth::check() && Auth::user()->id == $track->user_id, 'edit' => Auth::check() && Auth::user()->id == $track->user_id]];
 }