# HG changeset patch # User Raimund Renkert # Date 1426261672 -3600 # Node ID fffee95c4cb621ca47545e34b052aaec34c16c00 # Parent 20016be6c07236a0565bfc9d0f2777e06a7a2acb Allow parameter 'ortId' to filter locations. diff -r 20016be6c072 -r fffee95c4cb6 src/main/java/de/intevation/lada/rest/stamm/LocationService.java --- a/src/main/java/de/intevation/lada/rest/stamm/LocationService.java Fri Mar 13 16:47:21 2015 +0100 +++ b/src/main/java/de/intevation/lada/rest/stamm/LocationService.java Fri Mar 13 16:47:52 2015 +0100 @@ -19,6 +19,7 @@ import javax.ws.rs.core.Context; import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.UriInfo; import org.apache.log4j.Logger; @@ -31,6 +32,7 @@ import de.intevation.lada.util.auth.AuthenticationType; import de.intevation.lada.util.auth.Authorization; import de.intevation.lada.util.auth.AuthorizationType; +import de.intevation.lada.util.data.QueryBuilder; import de.intevation.lada.util.data.Repository; import de.intevation.lada.util.data.RepositoryType; import de.intevation.lada.util.rest.Response; @@ -74,7 +76,17 @@ logger.debug("User is not authenticated!"); return new Response(false, 699, null); } - return defaultRepo.getAll(SOrt.class, "stamm"); + MultivaluedMap params = info.getQueryParameters(); + if (params.isEmpty() || !params.containsKey("ortId")) { + return defaultRepo.getAll(SOrt.class, "stamm"); + } + String probeId = params.getFirst("ortId"); + QueryBuilder builder = + new QueryBuilder( + defaultRepo.entityManager("land"), + SOrt.class); + builder.and("probeId", probeId); + return defaultRepo.filter(builder.getQuery(), "stamm"); } /**