Pony.fm/app/Commands/DeleteTrackCommand.php
2015-08-31 15:19:23 +01:00

46 lines
No EOL
955 B
PHP

<?php
namespace App\Commands;
use App\Track;
class DeleteTrackCommand extends CommandBase
{
private $_trackId;
private $_track;
function __construct($trackId)
{
$this->_trackId = $trackId;
$this->_track = Track::find($trackId);
}
/**
* @return bool
*/
public function authorize()
{
$user = \Auth::user();
return $this->_track && $user != null && $this->_track->user_id == $user->id;
}
/**
* @throws \Exception
* @return CommandResponse
*/
public function execute()
{
if ($this->_track->album_id != null) {
$album = $this->_track->album;
$this->_track->album_id = null;
$this->_track->track_number = null;
$this->_track->delete();
$album->updateTrackNumbers();
} else {
$this->_track->delete();
}
return CommandResponse::succeed();
}
}