. */ namespace SP\Modules\Web\Controllers\Eventlog; use Exception; use SP\Core\Application; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\Domain\Security\Ports\EventlogServiceInterface; use SP\Http\JsonResponse; use SP\Modules\Web\Controllers\ControllerBase; use SP\Modules\Web\Controllers\Traits\JsonTrait; use SP\Mvc\Controller\WebControllerHelper; /** * Class ClearController */ final class ClearController extends ControllerBase { use JsonTrait; private EventlogServiceInterface $eventlogService; /** * @throws \SP\Core\Exceptions\SessionTimeout * @throws \SP\Domain\Auth\Services\AuthException * @throws \JsonException */ public function __construct( Application $application, WebControllerHelper $webControllerHelper, EventlogServiceInterface $eventlogService ) { parent::__construct($application, $webControllerHelper); $this->checkLoggedIn(); $this->eventlogService = $eventlogService; } /** * @return bool * @throws \JsonException */ public function clearAction(): bool { try { $this->eventlogService->clear(); $this->eventDispatcher->notifyEvent( 'clear.eventlog', new Event($this, EventMessage::factory()->addDescription(__u('Event log cleared'))) ); return $this->returnJsonResponse(JsonResponse::JSON_SUCCESS, __u('Event log cleared')); } catch (Exception $e) { processException($e); return $this->returnJsonResponseException($e); } } }