. */ namespace SP\Modules\Web\Controllers\Items; use Klein\Klein; use SP\Core\Acl\Acl; use SP\Core\Application; use SP\Core\PhpExtensionChecker; use SP\Core\UI\ThemeInterface; use SP\Domain\Client\ClientServiceInterface; use SP\Http\Json; use SP\Http\RequestInterface; use SP\Modules\Web\Controllers\SimpleControllerBase; use SP\Mvc\View\Components\SelectItemAdapter; /** * Class ClientsController */ final class ClientsController extends SimpleControllerBase { private ClientServiceInterface $clientService; public function __construct( Application $application, ThemeInterface $theme, Klein $router, Acl $acl, RequestInterface $request, PhpExtensionChecker $extensionChecker, ClientServiceInterface $clientService ) { parent::__construct($application, $theme, $router, $acl, $request, $extensionChecker); $this->checks(); $this->clientService = $clientService; } /** * @throws \SP\Core\Exceptions\ConstraintException * @throws \SP\Core\Exceptions\QueryException * @throws \SP\Core\Exceptions\SPException */ public function clientsAction(): void { Json::factory($this->router->response()) ->returnRawJson(SelectItemAdapter::factory($this->clientService->getAllForUser())->getJsonItemsFromModel()); } }