diff src/main/java/de/intevation/lada/rest/LProbeRESTService.java @ 35:f425150ea2b5

New filter option in LProbe GET request.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 23 May 2013 14:12:27 +0200
parents c5930d01e0ab
children 8155d2ed5cb8
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/rest/LProbeRESTService.java	Thu May 23 14:10:26 2013 +0200
+++ b/src/main/java/de/intevation/lada/rest/LProbeRESTService.java	Thu May 23 14:12:27 2013 +0200
@@ -5,9 +5,15 @@
 
 import javax.enterprise.context.RequestScoped;
 import javax.inject.Inject;
+import javax.ws.rs.DefaultValue;
 import javax.ws.rs.GET;
 import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
 import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
 
 import de.intevation.lada.data.LProbeRepository;
 import de.intevation.lada.model.LProbe;
@@ -30,17 +36,10 @@
     private Logger log;
 
     @GET
-    @Produces("text/json")
-    public List<LProbe> listAllMembers() {
-       final List<LProbe> result = repository.findAll();
-       return result;
-    }
-
-    @GET
     @Path("/{id:[0-9][0-9]*}")
     @Produces("text/plain")
-    public String loadById() {
-       return "Eine Probe!";
+    public LProbe loadById(@PathParam("id") long id) {
+       return repository.findById(id);
     }
 
     @GET
@@ -54,10 +53,31 @@
     }
 
     @GET
-    @Path("/new")
-    @Produces("text/plain")
-    public String create() {
-       return "Neu";
+    @Produces("text/json")
+    public List<LProbe> filter(@Context UriInfo info) {
+        MultivaluedMap<String, String> params = info.getQueryParameters();
+        if (params.isEmpty()) {
+            return repository.findAll();
+        }
+        String mstId = "";
+        String uwbId = "";
+        Long begin = null;
+        if (params.containsKey("mst")) {
+            mstId = params.getFirst("mst");
+        }
+        if (params.containsKey("uwb")) {
+            uwbId = params.getFirst("uwb");
+        }
+        if (params.containsKey("begin")) {
+            String tmp = params.getFirst("begin");
+            try {
+                begin = Long.valueOf(tmp);
+            }
+            catch (NumberFormatException nfe) {
+                begin = null;
+            }
+        }
+        return repository.filter(mstId, uwbId, begin);
     }
     //@GET
     //@Produces("text/xml")
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)