diff options
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/web/AbstractResource.java')
-rw-r--r-- | src/main/java/io/trygvis/esper/testing/web/AbstractResource.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/web/AbstractResource.java b/src/main/java/io/trygvis/esper/testing/web/AbstractResource.java new file mode 100644 index 0000000..c811a2f --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/web/AbstractResource.java @@ -0,0 +1,26 @@ +package io.trygvis.esper.testing.web; + +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(); + } +} |