. */ namespace SP\Modules\Api\Controllers\UserGroup; use Exception; use SP\Core\Acl\ActionsInterface; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\DataModel\UserGroupData; use SP\Domain\Api\Services\ApiResponse; /** * Class CreateController */ final class CreateController extends UserGroupBase { /** * createAction */ public function createAction(): void { try { $this->setupApi(ActionsInterface::GROUP_CREATE); $userGroupData = $this->buildUserGroupData(); $id = $this->userGroupService->create($userGroupData); $userGroupData->setId($id); $this->eventDispatcher->notify( 'create.userGroup', new Event( $this, EventMessage::factory() ->addDescription(__u('Group added')) ->addDetail(__u('Name'), $userGroupData->getName()) ->addDetail('ID', $id) ) ); $this->returnResponse(ApiResponse::makeSuccess($userGroupData, $id, __('Group added'))); } catch (Exception $e) { processException($e); $this->returnResponseException($e); } } /** * @return \SP\DataModel\UserGroupData * @throws \SP\Domain\Common\Services\ServiceException */ private function buildUserGroupData(): UserGroupData { $userGroupData = new UserGroupData(); $userGroupData->setName($this->apiService->getParamString('name', true)); $userGroupData->setDescription($this->apiService->getParamString('description')); $userGroupData->setUsers($this->apiService->getParamArray('usersId')); return $userGroupData; } }