. */ namespace SP\Modules\Web\Controllers\Track; use Exception; use SP\Core\Acl\ActionsInterface; use SP\Core\Acl\UnauthorizedActionException; use SP\Core\Events\Event; use SP\Core\Exceptions\SPException; use SP\Http\JsonResponse; 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(ActionsInterface::TRACK_CLEAR)) { throw new UnauthorizedActionException(SPException::ERROR); } $this->trackService->clear(); $this->eventDispatcher->notifyEvent('clear.track', new Event($this)); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Tracks cleared out')); } catch (Exception $e) { processException($e); $this->eventDispatcher->notifyEvent('exception', new Event($e)); return $this->returnJsonResponseException($e); } } }