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

com.hubspot.blazar.resources.BuildHistoryResource Maven / Gradle / Ivy

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

import com.google.common.base.Optional;
import com.hubspot.blazar.base.ModuleBuild;
import com.hubspot.blazar.base.RepositoryBuild;
import com.hubspot.blazar.data.service.ModuleBuildService;
import com.hubspot.blazar.data.service.RepositoryBuildService;
import com.hubspot.jackson.jaxrs.PropertyFiltering;

import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import java.util.List;

@Path("/builds/history")
@Produces(MediaType.APPLICATION_JSON)
public class BuildHistoryResource {
  private final RepositoryBuildService repositoryBuildService;
  private final ModuleBuildService moduleBuildService;

  @Inject
  public BuildHistoryResource(RepositoryBuildService repositoryBuildService, ModuleBuildService moduleBuildService) {
    this.repositoryBuildService = repositoryBuildService;
    this.moduleBuildService = moduleBuildService;
  }

  @GET
  @Path("/branch/{id}")
  @PropertyFiltering
  public List getByBranch(@PathParam("id") int branchId) {
    return repositoryBuildService.getByBranch(branchId);
  }

  @GET
  @Path("/branch/{id}/build/{number}")
  @PropertyFiltering
  public Optional getByBranch(@PathParam("id") int branchId, @PathParam("number") int buildNumber) {
    return repositoryBuildService.getByBranchAndNumber(branchId, buildNumber);
  }

  @GET
  @Path("/module/{id}")
  @PropertyFiltering
  public List getByModule(@PathParam("id") int moduleId) {
    return moduleBuildService.getByModule(moduleId);
  }

  @GET
  @Path("/module/{id}/build/{number}")
  @PropertyFiltering
  public Optional getByModule(@PathParam("id") int moduleId, @PathParam("number") int buildNumber) {
    return moduleBuildService.getByModuleAndNumber(moduleId, buildNumber);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy