From bb05d5c52e02642a624914c8085dbe85de7d403f Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@inaf.it> Date: Sat, 20 Apr 2024 15:08:47 +0300 Subject: [PATCH] implements CALIB and MAXREC in parsing and SQL-query --- .../src/main/java/vlkb/search/DbPSearch.java | 7 +++++++ .../src/main/java/vlkb/webapi/SearchServlet.java | 15 +++++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/data-discovery/src/main/java/vlkb/search/DbPSearch.java b/data-discovery/src/main/java/vlkb/search/DbPSearch.java index ecb3c44..6eeecbb 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 1b2ca23..58d49d4 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 */ -- GitLab