Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/rest/LProbeService.java @ 45:a5ee8d69c0b4
Renamed existing rest services and make use of the generic repository.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Fri, 24 May 2013 11:53:46 +0200 |
parents | src/main/java/de/intevation/lada/rest/LProbeRESTService.java@e0a5477f657e |
children | 3a00c8fd5a8e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/rest/LProbeService.java Fri May 24 11:53:46 2013 +0200 @@ -0,0 +1,92 @@ +package de.intevation.lada.rest; + +import java.util.List; +import java.util.logging.Logger; + +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +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; + +/** + * This class produces a RESTful service to read the contents of LProbe table. + * + * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> + */ +@Path("/proben") +@RequestScoped +public class LProbeService { + + /** + * The Repository for LProbe. + */ + @Inject + private LProbeRepository repository; + + /** + * The logger for this class. + */ + @Inject + private Logger log; + + /** + * Request a LProbe via its id. + * + * @param id The LProbe id + * @return JSON Object via REST service. + */ + @GET + @Path("/{id}") + @Produces("text/json") + public LProbe loadById(@PathParam("id") String id) { + return repository.findById(LProbe.class, id); + } + + /** + * Request LProbe via a filter. + * + * Query parameters are used for the filter in form of key-value pairs. + * This filter can take the three parameters + * mst=$MSTID (String) + * uwb=$UWBID (String) + * begin=$PROBEENTNAHMEBEGIN (Timestamp) + * + * @param info The URL query parameters. + * @return JSON Object via Rest service. + */ + @GET + @Produces("text/json") + public List<LProbe> filter(@Context UriInfo info) { + MultivaluedMap<String, String> params = info.getQueryParameters(); + if (params.isEmpty()) { + return repository.findAll(LProbe.class); + } + 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); + } +}