. */ namespace SP\Modules\Web\Controllers\Track; use Exception; use JsonException; use SP\Core\Events\Event; use SP\Domain\Core\Acl\AclActionsInterface; use SP\Domain\Core\Acl\UnauthorizedActionException; use SP\Domain\Core\Exceptions\SPException; use SP\Domain\Http\Dtos\JsonMessage; use SP\Modules\Web\Controllers\Traits\JsonTrait; /** * Class ClearController */ final class ClearController extends TrackBase { use JsonTrait; /** * Clears tracks * * @return bool * @throws JsonException */ public function clearAction(): bool { try { if (!$this->acl->checkUserAccess(AclActionsInterface::TRACK_CLEAR)) { throw new UnauthorizedActionException(SPException::ERROR); } $this->trackService->clear(); $this->eventDispatcher->notify('clear.track', new Event($this)); return $this->returnJsonResponse(JsonMessage::JSON_SUCCESS, __u('Tracks cleared out')); } catch (Exception $e) { processException($e); $this->eventDispatcher->notify('exception', new Event($e)); return $this->returnJsonResponseException($e); } } }