private Optional<CurrentWsResponse.Homepage> doBuildHomepage(DbSession dbSession, UserDto user) { if (PROJECT.toString().equals(user.getHomepageType())) { return projectHomepage(dbSession, user); } if (APPLICATION.toString().equals(user.getHomepageType()) || PORTFOLIO.toString().equals(user.getHomepageType())) { return applicationAndPortfolioHomepage(dbSession, user); } if (ORGANIZATION.toString().equals(user.getHomepageType())) { return organizationHomepage(dbSession, user); } return of(CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .build()); }
private Optional<CurrentWsResponse.Homepage> doBuildHomepage(DbSession dbSession, UserDto user) { if (PROJECT.toString().equals(user.getHomepageType())) { return projectHomepage(dbSession, user); } if (APPLICATION.toString().equals(user.getHomepageType()) || PORTFOLIO.toString().equals(user.getHomepageType())) { return applicationAndPortfolioHomepage(dbSession, user); } if (ORGANIZATION.toString().equals(user.getHomepageType())) { return organizationHomepage(dbSession, user); } return of(CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .build()); }
private CurrentWsResponse.Homepage defaultHomepage() { return CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(homepageTypes.getDefaultType().name())) .build(); }
private Optional<CurrentWsResponse.Homepage> organizationHomepage(DbSession dbSession, UserDto user) { Optional<OrganizationDto> organizationOptional = dbClient.organizationDao().selectByUuid(dbSession, of(user.getHomepageParameter()).orElse(EMPTY)); if (!organizationOptional.isPresent()) { cleanUserHomepageInDb(dbSession, user); return empty(); } return of(CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .setOrganization(organizationOptional.get().getKey()) .build()); }
private Optional<CurrentWsResponse.Homepage> projectHomepage(DbSession dbSession, UserDto user) { Optional<ComponentDto> projectOptional = ofNullable(dbClient.componentDao().selectByUuid(dbSession, of(user.getHomepageParameter()).orElse(EMPTY)).orNull()); if (shouldCleanProjectHomepage(projectOptional)) { cleanUserHomepageInDb(dbSession, user); return empty(); } CurrentWsResponse.Homepage.Builder homepage = CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .setComponent(projectOptional.get().getKey()); setNullable(projectOptional.get().getBranch(), homepage::setBranch); return of(homepage.build()); }
private Optional<CurrentWsResponse.Homepage> applicationAndPortfolioHomepage(DbSession dbSession, UserDto user) { Optional<ComponentDto> componentOptional = ofNullable(dbClient.componentDao().selectByUuid(dbSession, of(user.getHomepageParameter()).orElse(EMPTY)).orNull()); if (shouldCleanApplicationOrPortfolioHomepage(componentOptional)) { cleanUserHomepageInDb(dbSession, user); return empty(); } return of(CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .setComponent(componentOptional.get().getKey()) .build()); }
private CurrentWsResponse.Homepage defaultHomepage() { return CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(homepageTypes.getDefaultType().name())) .build(); }
private Optional<CurrentWsResponse.Homepage> projectHomepage(DbSession dbSession, UserDto user) { Optional<ComponentDto> projectOptional = ofNullable(dbClient.componentDao().selectByUuid(dbSession, of(user.getHomepageParameter()).orElse(EMPTY)).orElse(null)); if (shouldCleanProjectHomepage(projectOptional)) { cleanUserHomepageInDb(dbSession, user); return empty(); } CurrentWsResponse.Homepage.Builder homepage = CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .setComponent(projectOptional.get().getKey()); ofNullable(projectOptional.get().getBranch()).ifPresent(homepage::setBranch); return of(homepage.build()); }
@Test public void fallback_to_MY_PROJECTS_when_on_SonarCloud() { onSonarCloud(); UserDto user = db.users().insertUser(u -> u.setHomepageType("PROJECT").setHomepageParameter("not-existing-project-uuid")); userSessionRule.logIn(user.getLogin()); CurrentWsResponse response = ws.newRequest().executeProtobuf(CurrentWsResponse.class); assertThat(response.getHomepage().getType().toString()).isEqualTo("MY_PROJECTS"); }
private Optional<CurrentWsResponse.Homepage> applicationAndPortfolioHomepage(DbSession dbSession, UserDto user) { Optional<ComponentDto> componentOptional = ofNullable(dbClient.componentDao().selectByUuid(dbSession, of(user.getHomepageParameter()).orElse(EMPTY)).orElse(null)); if (shouldCleanApplicationOrPortfolioHomepage(componentOptional)) { cleanUserHomepageInDb(dbSession, user); return empty(); } return of(CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .setComponent(componentOptional.get().getKey()) .build()); }
@Test public void fallback_to_PROJECTS_when_on_SonarQube() { UserDto user = db.users().insertUser(u -> u.setHomepageType("PROJECT").setHomepageParameter("not-existing-project-uuid")); userSessionRule.logIn(user.getLogin()); CurrentWsResponse response = ws.newRequest().executeProtobuf(CurrentWsResponse.class); assertThat(response.getHomepage().getType().toString()).isEqualTo("PROJECTS"); }
@Test public void fallback_when_user_homepage_application_and_governance_plugin_is_not_installed() { withoutGovernancePlugin(); ComponentDto application = db.components().insertPrivateApplication(db.getDefaultOrganization()); UserDto user = db.users().insertUser(u -> u.setHomepageType("APPLICATION").setHomepageParameter(application.uuid())); userSessionRule.logIn(user.getLogin()); CurrentWsResponse response = ws.newRequest().executeProtobuf(CurrentWsResponse.class); assertThat(response.getHomepage().getType().toString()).isEqualTo("PROJECTS"); }
private Optional<CurrentWsResponse.Homepage> organizationHomepage(DbSession dbSession, UserDto user) { Optional<OrganizationDto> organizationOptional = dbClient.organizationDao().selectByUuid(dbSession, of(user.getHomepageParameter()).orElse(EMPTY)); if (!organizationOptional.isPresent()) { cleanUserHomepageInDb(dbSession, user); return empty(); } return of(CurrentWsResponse.Homepage.newBuilder() .setType(CurrentWsResponse.HomepageType.valueOf(user.getHomepageType())) .setOrganization(organizationOptional.get().getKey()) .build()); }