@Test public void selectByIds() { GroupDto group1 = db.users().insertGroup(); GroupDto group2 = db.users().insertGroup(); GroupDto group3 = db.users().insertGroup(); assertThat(underTest.selectByIds(dbSession, asList(group1.getId(), group2.getId()))) .extracting(GroupDto::getId).containsOnly(group1.getId(), group2.getId()); assertThat(underTest.selectByIds(dbSession, asList(group1.getId(), MISSING_ID))) .extracting(GroupDto::getId).containsOnly(group1.getId()); assertThat(underTest.selectByIds(dbSession, Collections.emptyList())).isEmpty(); }
@Override public void handle(Request request, Response response) throws Exception { SearchUsersRequest wsRequest = buildRequest(request); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, wsRequest.getOrganization()); QProfileDto profile = wsSupport.getProfile(dbSession, organization, wsRequest.getQualityProfile(), wsRequest.getLanguage()); wsSupport.checkCanEdit(dbSession, organization, profile); SearchGroupsQuery query = builder() .setOrganization(organization) .setProfile(profile) .setQuery(wsRequest.getQuery()) .setMembership(MEMBERSHIP.get(fromParam(wsRequest.getSelected()))) .build(); int total = dbClient.qProfileEditGroupsDao().countByQuery(dbSession, query); List<GroupMembershipDto> groupMemberships = dbClient.qProfileEditGroupsDao().selectByQuery(dbSession, query, forPage(wsRequest.getPage()).andSize(wsRequest.getPageSize())); Map<Integer, GroupDto> groupsById = dbClient.groupDao().selectByIds(dbSession, groupMemberships.stream().map(GroupMembershipDto::getGroupId).collect(MoreCollectors.toList())) .stream() .collect(MoreCollectors.uniqueIndex(GroupDto::getId)); writeProtobuf( Qualityprofiles.SearchGroupsResponse.newBuilder() .addAllGroups(groupMemberships.stream() .map(groupsMembership -> toGroup(groupsById.get(groupsMembership.getGroupId()), groupsMembership.isSelected())) .collect(toList())) .setPaging(buildPaging(wsRequest, total)).build(), request, response); } }
assertThat(dbClient.groupDao().selectByIds(dbSession, of(group1.getId(), otherGroup1.getId(), group2.getId(), otherGroup2.getId()))) .extracting(GroupDto::getId) .containsOnly(otherGroup1.getId(), otherGroup2.getId());
@Override public void handle(Request request, Response response) throws Exception { SearchUsersRequest wsRequest = buildRequest(request); try (DbSession dbSession = dbClient.openSession(false)) { OrganizationDto organization = wsSupport.getOrganizationByKey(dbSession, wsRequest.getOrganization()); QProfileDto profile = wsSupport.getProfile(dbSession, organization, wsRequest.getQualityProfile(), wsRequest.getLanguage()); wsSupport.checkCanEdit(dbSession, organization, profile); SearchGroupsQuery query = builder() .setOrganization(organization) .setProfile(profile) .setQuery(wsRequest.getQuery()) .setMembership(MEMBERSHIP.get(fromParam(wsRequest.getSelected()))) .build(); int total = dbClient.qProfileEditGroupsDao().countByQuery(dbSession, query); List<GroupMembershipDto> groupMemberships = dbClient.qProfileEditGroupsDao().selectByQuery(dbSession, query, forPage(wsRequest.getPage()).andSize(wsRequest.getPageSize())); Map<Integer, GroupDto> groupsById = dbClient.groupDao().selectByIds(dbSession, groupMemberships.stream().map(GroupMembershipDto::getGroupId).collect(MoreCollectors.toList())) .stream() .collect(MoreCollectors.uniqueIndex(GroupDto::getId)); writeProtobuf( Qualityprofiles.SearchGroupsResponse.newBuilder() .addAllGroups(groupMemberships.stream() .map(groupsMembership -> toGroup(groupsById.get(groupsMembership.getGroupId()), groupsMembership.isSelected())) .collect(toList())) .setPaging(buildPaging(wsRequest, total)).build(), request, response); } }