diff options
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web/JenkinsResource.java')
-rw-r--r-- | src/main/java/io/trygvis/esper/testing/web/JenkinsResource.java | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/web/JenkinsResource.java b/src/main/java/io/trygvis/esper/testing/web/JenkinsResource.java new file mode 100644 index 0000000..a1e2f51 --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/web/JenkinsResource.java @@ -0,0 +1,57 @@ +package io.trygvis.esper.testing.web; + +import fj.data.*; +import io.trygvis.esper.testing.*; +import io.trygvis.esper.testing.jenkins.*; + +import javax.ws.rs.*; +import javax.ws.rs.core.*; +import java.sql.*; +import java.util.*; +import java.util.List; + +@Path("/") +public class JenkinsResource { + + private final DatabaseAccess da; + + public JenkinsResource(DatabaseAccess da) { + this.da = da; + } + + @GET + @Path("/resource/jenkins/server") + @Produces(MediaType.APPLICATION_JSON) + public List<JenkinsServerDto> getServers() throws Exception { + System.out.println("JenkinsResource.getServers"); + return da.inTransaction(new DatabaseAccess.DaosCallback<List<JenkinsServerDto>>() { + @Override + public List<JenkinsServerDto> run(Daos daos) throws SQLException { + return daos.jenkinsDao.selectServers(false); + } + }); + } + + @GET + @Path("/resource/jenkins/server/{uuid}") + @Produces(MediaType.APPLICATION_JSON) + public JenkinsServerDto getServer(@PathParam("uuid") String s) throws Exception { + try { + final UUID uuid = UUID.fromString(s); + System.out.println("JenkinsResource.getServers"); + Option<JenkinsServerDto> server = da.inTransaction(new DatabaseAccess.DaosCallback<Option<JenkinsServerDto>>() { + public Option<JenkinsServerDto> run(Daos daos) throws SQLException { + return daos.jenkinsDao.selectServer(uuid); + } + }); + + if(server.isNone()) { + throw new WebApplicationException(Response.Status.NOT_FOUND); + } + + return server.some(); + } catch (IllegalArgumentException e) { + throw new WebApplicationException(Response.Status.BAD_REQUEST); + } + } +} |