All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.blazar.util.BlazarUrlHelper Maven / Gradle / Ivy

The newest version!
package com.hubspot.blazar.util;

import javax.ws.rs.core.UriBuilder;

import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.hubspot.blazar.base.GitInfo;
import com.hubspot.blazar.base.Module;
import com.hubspot.blazar.base.ModuleBuild;
import com.hubspot.blazar.base.RepositoryBuild;
import com.hubspot.blazar.config.BlazarConfiguration;
import com.hubspot.blazar.config.UiConfiguration;
import com.hubspot.blazar.data.service.ModuleService;
import com.hubspot.blazar.data.service.RepositoryBuildService;

import java.net.URI;

@Singleton
public class BlazarUrlHelper {
  private final RepositoryBuildService repositoryBuildService;
  private final ModuleService moduleService;
  private final UiConfiguration uiConfiguration;

  @Inject
  public BlazarUrlHelper(RepositoryBuildService repositoryBuildService,
                         ModuleService moduleService,
                         BlazarConfiguration configuration) {
    this.repositoryBuildService = repositoryBuildService;
    this.moduleService = moduleService;

    this.uiConfiguration = configuration.getUiConfiguration();
  }

  public URI getBlazarUiLink(GitInfo gitInfo) {
    return getBlazarUiLink(gitInfo.getId().get());
  }

  public String getBlazarUiLink(RepositoryBuild build) {
    return UriBuilder.fromUri(getBlazarUiLink(build.getBranchId()))
        .segment("build")
        .segment(Integer.toString(build.getBuildNumber()))
        .build()
        .toString();
  }

  public String getBlazarUiLink(ModuleBuild build) {
    RepositoryBuild repoBuild = repositoryBuildService.get(build.getRepoBuildId()).get();
    Module module = moduleService.get(build.getModuleId()).get();
    return UriBuilder.fromUri(getBlazarUiLink(repoBuild))
        .segment("module")
        .segment(module.getName())
        .build()
        .toString();
  }

  private URI getBlazarUiLink(int branchId) {
    return UriBuilder.fromUri(uiConfiguration.getBaseUrl())
        .segment("builds")
        .segment("branch")
        .segment(Integer.toString(branchId))
        .build();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy