aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/web
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2012-12-19 23:42:12 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2012-12-19 23:42:12 +0100
commit79c6c1d042fdad06294f4db57c5b8c91b6a0e5d0 (patch)
tree815da28b8238bbe3bf44ef126fb79c0ffaf41de6 /src/main/java/io/trygvis/esper/testing/web
parent4abc880c4b9ce6888acab85c815514f3dd195fa4 (diff)
downloadesper-testing-79c6c1d042fdad06294f4db57c5b8c91b6a0e5d0.tar.gz
esper-testing-79c6c1d042fdad06294f4db57c5b8c91b6a0e5d0.tar.bz2
esper-testing-79c6c1d042fdad06294f4db57c5b8c91b6a0e5d0.tar.xz
esper-testing-79c6c1d042fdad06294f4db57c5b8c91b6a0e5d0.zip
o Adding a basic web app.
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web')
-rw-r--r--src/main/java/io/trygvis/esper/testing/web/JenkinsResource.java57
-rw-r--r--src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java23
2 files changed, 80 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);
+ }
+ }
+}
diff --git a/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java b/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java
new file mode 100644
index 0000000..8d071a9
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/web/JerseyApplication.java
@@ -0,0 +1,23 @@
+package io.trygvis.esper.testing.web;
+
+import io.trygvis.esper.testing.*;
+
+import javax.ws.rs.core.*;
+import java.util.*;
+
+public class JerseyApplication extends Application {
+
+ private final DatabaseAccess da;
+
+ public JerseyApplication() throws Exception {
+ Config config = Config.loadFromDisk();
+ this.da = new DatabaseAccess(config.createBoneCp());
+ }
+
+ @Override
+ public Set<Object> getSingletons() {
+ return new HashSet<Object>(Arrays.asList(
+ new JenkinsResource(da)
+ ));
+ }
+}