diff --git a/data-discovery/src/main/java/vlkb/search/DbPSearch.java b/data-discovery/src/main/java/vlkb/search/DbPSearch.java index ecb3c44cf1bb1568a89778e1cacdf6f7c69b5b1b..6eeecbb42f00394f25ee885329b5f61b531a3139 100644 --- a/data-discovery/src/main/java/vlkb/search/DbPSearch.java +++ b/data-discovery/src/main/java/vlkb/search/DbPSearch.java @@ -93,6 +93,13 @@ public class DbPSearch theQuery += appendStringMatchConstraint(coord.target, "target_name"); theQuery += appendStringMatchConstraint(coord.format, "access_format"); + if(coord.calib != null) + theQuery += " AND (" + coord.calib + " = calib_level)"; + + if(coord.maxrec != null) + theQuery += " LIMIT " + coord.maxrec; + + //theQuery += " ORDER BY obs_collection"; LOGGER.info(theQuery); diff --git a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java index 1b2ca2339ce26ab94ebb5a2d2620a6a6e06d4323..58d49d42134de8169118b504e27f45ea8f7c2e8e 100644 --- a/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java +++ b/data-discovery/src/main/java/vlkb/webapi/SearchServlet.java @@ -91,12 +91,15 @@ public class SearchServlet extends javax.servlet.http.HttpServlet coord.target = SingleStringParam.parseSingleStringParam(params, "TARGET"); coord.format = SingleStringParam.parseSingleStringParam(params, "FORMAT"); - // coord.calib = Integer.parseInt(SingleStringParam.parseSingleStringParam(params, "CALIB")); - // coord.maxrec = Integer.parseInt(SingleStringParam.parseSingleStringParam(params, "MAXREC")); - // FIXME implement checks (?in vlkb-volib?): 0<= calib <=5 and maxrec >= 0 - - // FIXME add to SQL-query params starting from fov ... - + String str = SingleStringParam.parseSingleStringParam(params, "CALIB"); + coord.calib = (str == null) ? null : Integer.parseInt(str); + if((coord.calib != null) && ((coord.calib < 0) || (coord.calib > 4))) + throw new IllegalArgumentException("CALIB out of range: " + coord.calib + " but allowed is 0..4"); + + str = SingleStringParam.parseSingleStringParam(params, "MAXREC"); + coord.maxrec = (str == null) ? null : Integer.parseInt(str); + if((coord.maxrec != null) && (coord.maxrec < 0)) + throw new IllegalArgumentException("MAXREC must not be negative: " + coord.maxrec); /* query Obscore table */