public function loadUserGroups(Request $request)
{
$restUserGroups = array();
if ($request->query->has('id')) {
$userGroup = $this->userService->loadUserGroup($request->query->get('id'));
$userGroupContentInfo = $userGroup->getVersionInfo()->getContentInfo();
$userGroupMainLocation = $this->locationService->loadLocation($userGroupContentInfo->mainLocationId);
$contentType = $this->contentTypeService->loadContentType($userGroupContentInfo->contentTypeId);
$restUserGroups = array(new Values\RestUserGroup($userGroup, $contentType, $userGroupContentInfo, $userGroupMainLocation, $this->contentService->loadRelations($userGroup->getVersionInfo())));
} elseif ($request->query->has('roleId')) {
$restUserGroups = $this->loadUserGroupsAssignedToRole($request->query->get('roleId'));
} elseif ($request->query->has('remoteId')) {
$restUserGroups = array($this->loadUserGroupByRemoteId($request));
}
if ($this->getMediaType($request) === 'application/vnd.ez.api.usergrouplist') {
return new Values\UserGroupList($restUserGroups, $request->getPathInfo());
}
return new Values\UserGroupRefList($restUserGroups, $request->getPathInfo());
}