aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/web/resource/AbstractResource.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web/resource/AbstractResource.java')
-rw-r--r--src/main/java/io/trygvis/esper/testing/web/resource/AbstractResource.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/web/resource/AbstractResource.java b/src/main/java/io/trygvis/esper/testing/web/resource/AbstractResource.java
new file mode 100644
index 0000000..cddec2c
--- /dev/null
+++ b/src/main/java/io/trygvis/esper/testing/web/resource/AbstractResource.java
@@ -0,0 +1,26 @@
+package io.trygvis.esper.testing.web.resource;
+
+import fj.data.*;
+import io.trygvis.esper.testing.*;
+
+import javax.ws.rs.*;
+import javax.ws.rs.core.*;
+import java.sql.*;
+
+public class AbstractResource {
+ protected final DatabaseAccess da;
+
+ public AbstractResource(DatabaseAccess da) {
+ this.da = da;
+ }
+
+ public <T> T get(DatabaseAccess.DaosCallback<Option<T>> callback) throws SQLException {
+ Option<T> server = da.inTransaction(callback);
+
+ if(server.isNone()) {
+ throw new WebApplicationException(Response.Status.NOT_FOUND);
+ }
+
+ return server.some();
+ }
+}