Exemplo n.º 1
0
 /**
  * @throws \Exception
  * @return CommandResponse
  */
 public function execute()
 {
     $rules = ['title' => 'required|min:3|max:50', 'cover' => 'image|mimes:png|min_width:350|min_height:350', 'cover_id' => 'exists:images,id', 'track_ids' => 'exists:tracks,id'];
     $validator = Validator::make($this->_input, $rules);
     if ($validator->fails()) {
         return CommandResponse::fail($validator);
     }
     $this->_album->title = $this->_input['title'];
     $this->_album->description = $this->_input['description'];
     if (isset($this->_input['cover_id'])) {
         $this->_album->cover_id = $this->_input['cover_id'];
     } else {
         if (isset($this->_input['cover'])) {
             $cover = $this->_input['cover'];
             $this->_album->cover_id = Image::upload($cover, Auth::user())->id;
         } else {
             if (isset($this->_input['remove_cover']) && $this->_input['remove_cover'] == 'true') {
                 $this->_album->cover_id = null;
             }
         }
     }
     $trackIds = explode(',', $this->_input['track_ids']);
     $this->_album->syncTrackIds($trackIds);
     $this->_album->save();
     return CommandResponse::succeed(['real_cover_url' => $this->_album->getCoverUrl(Image::NORMAL)]);
 }
Exemplo n.º 2
0
 public static function mapPublicAlbumSummary(Album $album)
 {
     $userData = ['stats' => ['views' => 0, 'downloads' => 0], 'is_favourited' => false];
     if (Auth::check() && $album->users->count()) {
         $userRow = $album->users[0];
         $userData = ['stats' => ['views' => (int) $userRow->view_count, 'downloads' => (int) $userRow->download_count], 'is_favourited' => (bool) $userRow->is_favourited];
     }
     return ['id' => (int) $album->id, 'track_count' => (int) $album->track_count, 'title' => $album->title, 'slug' => $album->slug, 'created_at' => $album->created_at->format('c'), 'stats' => ['views' => (int) $album->view_count, 'downloads' => (int) $album->download_count, 'comments' => (int) $album->comment_count, 'favourites' => (int) $album->favourite_count], 'covers' => ['small' => $album->getCoverUrl(Image::SMALL), 'normal' => $album->getCoverUrl(Image::NORMAL), 'original' => $album->getCoverUrl(Image::ORIGINAL)], 'url' => $album->url, 'user' => ['id' => (int) $album->user->id, 'name' => $album->user->display_name, 'url' => $album->user->url], 'user_data' => $userData, 'permissions' => ['delete' => Auth::check() && Auth::user()->id == $album->user_id, 'edit' => Auth::check() && Auth::user()->id == $album->user_id]];
 }