. */ namespace SP\Modules\Api\Controllers\UserGroup; use Exception; use SP\Core\Events\Event; use SP\Domain\Api\Dtos\ApiResponse; use SP\Domain\Common\Services\ServiceException; use SP\Domain\Core\Acl\AclActionsInterface; use SP\Domain\Core\Dtos\ItemSearchDto; /** * Class SearchController */ final class SearchController extends UserGroupBase { /** * searchAction */ public function searchAction(): void { try { $this->setupApi(AclActionsInterface::GROUP_SEARCH); $itemSearchData = $this->buildSearchData(); $this->eventDispatcher->notify('search.userGroup', new Event($this)); $this->returnResponse( ApiResponse::makeSuccess($this->userGroupService->search($itemSearchData)->getDataAsArray()) ); } catch (Exception $e) { processException($e); $this->returnResponseException($e); } } /** * @return ItemSearchDto * @throws ServiceException */ private function buildSearchData(): ItemSearchDto { $itemSearchData = new ItemSearchDto(); $itemSearchData->setSeachString($this->apiService->getParamString('text')); $itemSearchData->setLimitCount($this->apiService->getParamInt('count', false, self::SEARCH_COUNT_ITEMS)); return $itemSearchData; } }