. */ namespace SP\Modules\Web\Controllers\Client; use SP\Core\Events\Event; use SP\Domain\Common\Attributes\Action; use SP\Domain\Common\Dtos\ActionResponse; use SP\Domain\Common\Enums\ResponseType; use SP\Domain\Common\Services\ServiceException; use SP\Domain\Core\Acl\AclActionsInterface; use SP\Domain\Core\Exceptions\ConstraintException; use SP\Domain\Core\Exceptions\QueryException; use SP\Domain\Core\Exceptions\SPException; use SP\Infrastructure\Common\Repositories\NoSuchItemException; use function SP\__; use function SP\__u; /** * Class CreateController */ final class CreateController extends ClientViewBase { /** * @return ActionResponse * @throws ServiceException * @throws ConstraintException * @throws QueryException * @throws SPException * @throws NoSuchItemException */ #[Action(ResponseType::JSON)] public function createAction(): ActionResponse { if (!$this->acl->checkUserAccess(AclActionsInterface::CLIENT_CREATE)) { return ActionResponse::error(__u('You don\'t have permission to do this operation')); } $this->view->assign('header', __('New Client')); $this->view->assign('isView', false); $this->view->assign('route', 'client/saveCreate'); $this->setViewData(); $this->eventDispatcher->notify('show.client.create', new Event($this)); return ActionResponse::ok('', ['html' => $this->render()]); } }