. */ namespace SP\Modules\Api\Controllers\UserGroup; use Exception; use SP\Core\Events\Event; use SP\Core\Events\EventMessage; use SP\Domain\Api\Dtos\ApiResponse; use SP\Domain\Common\Services\ServiceException; use SP\Domain\Core\Acl\AclActionsInterface; use SP\Domain\User\Models\UserGroup; /** * Class CreateController */ final class CreateController extends UserGroupBase { /** * createAction */ public function createAction(): void { try { $this->setupApi(AclActionsInterface::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 UserGroup * @throws ServiceException */ private function buildUserGroupData(): UserGroup { $userGroupData = new UserGroup(); $userGroupData->setName($this->apiService->getParamString('name', true)); $userGroupData->setDescription($this->apiService->getParamString('description')); $userGroupData->setUsers($this->apiService->getParamArray('usersId')); return $userGroupData; } }