. */ 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 EditController */ final class EditController extends UserGroupBase { /** * editAction */ public function editAction(): void { try { $this->setupApi(AclActionsInterface::GROUP_EDIT); $userGroupData = $this->buildUserGroupData(); $this->userGroupService->update($userGroupData); $this->eventDispatcher->notify( 'edit.userGroup', new Event( $this, EventMessage::factory() ->addDescription(__u('Group updated')) ->addDetail(__u('Name'), $userGroupData->getName()) ->addDetail('ID', $userGroupData->getId()) ->addExtra('userGroupId', $userGroupData->getId()) ) ); $this->returnResponse( ApiResponse::makeSuccess($userGroupData, $userGroupData->getId(), __('Group updated')) ); } catch (Exception $e) { processException($e); $this->returnResponseException($e); } } /** * @return UserGroup * @throws ServiceException */ private function buildUserGroupData(): UserGroup { $userGroupData = new UserGroup(); $userGroupData->setId($this->apiService->getParamInt('id', true)); $userGroupData->setName($this->apiService->getParamString('name', true)); $userGroupData->setDescription($this->apiService->getParamString('description')); $userGroupData->setUsers($this->apiService->getParamArray('usersId')); return $userGroupData; } }