private List<String> searchTags(Optional<OrganizationDto> organization, Optional<ComponentDto> project, Request request) { IssueQuery.Builder issueQueryBuilder = IssueQuery.builder(); organization.ifPresent(o -> issueQueryBuilder.organizationUuid(o.getUuid())); project.ifPresent(p -> { switch (p.qualifier()) { case Qualifiers.PROJECT: issueQueryBuilder.projectUuids(ImmutableSet.of(p.uuid())); return; case Qualifiers.APP: case Qualifiers.VIEW: issueQueryBuilder.viewUuids(ImmutableSet.of(p.uuid())); return; default: throw new IllegalArgumentException(String.format("Component of type '%s' is not supported", p.qualifier())); } }); return issueIndex.searchTags( issueQueryBuilder.build(), request.param(TEXT_QUERY), request.mandatoryParamAsInt(PAGE_SIZE)); }
private List<String> getAuthors(OrganizationDto organization, Optional<ComponentDto> project, Request request) { IssueQuery.Builder issueQueryBuilder = IssueQuery.builder() .organizationUuid(organization.getUuid()); project.ifPresent(p -> { switch (p.qualifier()) { case Qualifiers.PROJECT: issueQueryBuilder.projectUuids(ImmutableSet.of(p.uuid())); return; case Qualifiers.APP: case Qualifiers.VIEW: issueQueryBuilder.viewUuids(ImmutableSet.of(p.uuid())); return; default: throw new IllegalArgumentException(String.format("Component of type '%s' is not supported", p.qualifier())); } }); return issueIndex.searchAuthors( issueQueryBuilder.build(), request.param(TEXT_QUERY), request.mandatoryParamAsInt(PAGE_SIZE)); }
@Test public void filter_by_organization_and_project() { OrganizationDto org1 = newOrganizationDto(); ComponentDto projectInOrg1 = newPrivateProjectDto(org1); OrganizationDto org2 = newOrganizationDto(); ComponentDto projectInOrg2 = newPrivateProjectDto(org2); indexIssues(newDoc("issueInOrg1", projectInOrg1), newDoc("issue1InOrg2", projectInOrg2), newDoc("issue2InOrg2", projectInOrg2)); // no conflict IssueQuery.Builder query = IssueQuery.builder().organizationUuid(org1.getUuid()).projectUuids(singletonList(projectInOrg1.uuid())); assertThatSearchReturnsOnly(query, "issueInOrg1"); // conflict query = IssueQuery.builder().organizationUuid(org1.getUuid()).projectUuids(singletonList(projectInOrg2.uuid())); assertThatSearchReturnsEmpty(query); }
.createdBefore(parseEndingDateOrDateTime(request.getCreatedBefore())) .facetMode(request.getFacetMode()) .organizationUuid(convertOrganizationKeyToUuid(dbSession, request.getOrganization()));
@Test public void list_tags() { RuleDefinitionDto r1 = db.rules().insert(); RuleDefinitionDto r2 = db.rules().insert(); ruleIndexer.commitAndIndex(db.getSession(), asList(r1.getId(), r2.getId())); OrganizationDto org = db.organizations().insert(); OrganizationDto anotherOrg = db.organizations().insert(); ComponentDto project = newPrivateProjectDto(newOrganizationDto()); ComponentDto file = newFileDto(project, null); indexIssues( newDoc("I42", file).setOrganizationUuid(anotherOrg.getUuid()).setRuleId(r1.getId()).setTags(of("another")), newDoc("I1", file).setOrganizationUuid(org.getUuid()).setRuleId(r1.getId()).setTags(of("convention", "java8", "bug")), newDoc("I2", file).setOrganizationUuid(org.getUuid()).setRuleId(r1.getId()).setTags(of("convention", "bug")), newDoc("I3", file).setOrganizationUuid(org.getUuid()).setRuleId(r2.getId()), newDoc("I4", file).setOrganizationUuid(org.getUuid()).setRuleId(r1.getId()).setTags(of("convention"))); assertThat(underTest.searchTags(IssueQuery.builder().organizationUuid(org.getUuid()).build(), null, 100)).containsOnly("convention", "java8", "bug"); assertThat(underTest.searchTags(IssueQuery.builder().organizationUuid(org.getUuid()).build(), null, 2)).containsOnly("bug", "convention"); assertThat(underTest.searchTags(IssueQuery.builder().organizationUuid(org.getUuid()).build(), "vent", 100)).containsOnly("convention"); assertThat(underTest.searchTags(IssueQuery.builder().organizationUuid(org.getUuid()).build(), null, 1)).containsOnly("bug"); assertThat(underTest.searchTags(IssueQuery.builder().organizationUuid(org.getUuid()).build(), null, 100)).containsOnly("convention", "java8", "bug"); assertThat(underTest.searchTags(IssueQuery.builder().organizationUuid(org.getUuid()).build(), "invalidRegexp[", 100)).isEmpty(); assertThat(underTest.searchTags(IssueQuery.builder().build(), null, 100)).containsExactlyInAnyOrder("another", "convention", "java8", "bug"); }
private void verifyOrganizationFilter(String organizationUuid, String... expectedIssueKeys) { IssueQuery.Builder query = IssueQuery.builder().organizationUuid(organizationUuid); assertThatSearchReturnsOnly(query, expectedIssueKeys); }