use of org.sonar.api.utils.Paging in project sonarqube by SonarSource.
the class GroupsAction method handle.
@Override
public void handle(Request request, Response response) throws Exception {
try (DbSession dbSession = dbClient.openSession(false)) {
Optional<ComponentDto> project = wsSupport.findProject(dbSession, request);
wsSupport.checkPermissionManagementAccess(userSession, project.orElse(null));
PermissionQuery query = buildPermissionQuery(request, project.orElse(null));
List<GroupDto> groups = findGroups(dbSession, query);
int total = dbClient.groupPermissionDao().countGroupsByQuery(dbSession, query);
List<GroupPermissionDto> groupsWithPermission = findGroupPermissions(dbSession, groups, project.orElse(null));
Paging paging = Paging.forPageIndex(request.mandatoryParamAsInt(Param.PAGE)).withPageSize(query.getPageSize()).andTotal(total);
WsGroupsResponse groupsResponse = buildResponse(groups, groupsWithPermission, paging);
writeProtobuf(groupsResponse, request, response);
}
}
use of org.sonar.api.utils.Paging in project sonarqube by SonarSource.
the class SearchAction method searchHotspots.
private SearchResponseData searchHotspots(WsRequest wsRequest, DbSession dbSession, @Nullable ComponentDto project) {
SearchResponse result = doIndexSearch(wsRequest, dbSession, project);
List<String> issueKeys = Arrays.stream(result.getHits().getHits()).map(SearchHit::getId).collect(toList(result.getHits().getHits().length));
List<IssueDto> hotspots = toIssueDtos(dbSession, issueKeys);
Paging paging = forPageIndex(wsRequest.getPage()).withPageSize(wsRequest.getIndex()).andTotal((int) getTotalHits(result).value);
return new SearchResponseData(paging, hotspots);
}
use of org.sonar.api.utils.Paging in project sonarqube by SonarSource.
the class SearchAction method formatPaging.
private static void formatPaging(SearchResponseData searchResponseData, SearchWsResponse.Builder responseBuilder) {
Paging paging = searchResponseData.getPaging();
Common.Paging.Builder pagingBuilder = Common.Paging.newBuilder().setPageIndex(paging.pageIndex()).setPageSize(paging.pageSize()).setTotal(paging.total());
responseBuilder.setPaging(pagingBuilder.build());
}
use of org.sonar.api.utils.Paging in project sonarqube by SonarSource.
the class SearchAction method toSearchResults.
private SearchResults toSearchResults(SearchRequest request) {
userSession.checkLoggedIn();
List<ComponentDto> authorizedFavorites = getAuthorizedFavorites();
Paging paging = Paging.forPageIndex(Integer.parseInt(request.getP())).withPageSize(Integer.parseInt(request.getPs())).andTotal(authorizedFavorites.size());
List<ComponentDto> displayedFavorites = authorizedFavorites.stream().skip(paging.offset()).limit(paging.pageSize()).collect(MoreCollectors.toList());
return new SearchResults(paging, displayedFavorites);
}
use of org.sonar.api.utils.Paging in project sonarqube by SonarSource.
the class SearchAction method doHandle.
private Users.SearchWsResponse doHandle(SearchRequest request) {
SearchOptions options = new SearchOptions().setPage(request.getPage(), request.getPageSize());
SearchResult<UserDoc> result = userIndex.search(UserQuery.builder().setTextQuery(request.getQuery()).build(), options);
try (DbSession dbSession = dbClient.openSession(false)) {
List<String> logins = result.getDocs().stream().map(UserDoc::login).collect(toList());
Multimap<String, String> groupsByLogin = dbClient.groupMembershipDao().selectGroupsByLogins(dbSession, logins);
List<UserDto> users = dbClient.userDao().selectByOrderedLogins(dbSession, logins);
Map<String, Integer> tokenCountsByLogin = dbClient.userTokenDao().countTokensByUsers(dbSession, users);
Paging paging = forPageIndex(request.getPage()).withPageSize(request.getPageSize()).andTotal((int) result.getTotal());
return buildResponse(users, groupsByLogin, tokenCountsByLogin, paging);
}
}
Aggregations