From 71e273c71d984324c26e607459a99076b6798266 Mon Sep 17 00:00:00 2001 From: Manuel Spuhler <manuel.spuhler@chuv.ch> Date: Mon, 30 Apr 2018 18:33:38 +0200 Subject: [PATCH] Throw exception for non-variables --- .../java/eu/hbp/mip/controllers/RequestsApi.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/eu/hbp/mip/controllers/RequestsApi.java b/src/main/java/eu/hbp/mip/controllers/RequestsApi.java index 9d5d2ecee..8c3537527 100644 --- a/src/main/java/eu/hbp/mip/controllers/RequestsApi.java +++ b/src/main/java/eu/hbp/mip/controllers/RequestsApi.java @@ -39,6 +39,8 @@ public class RequestsApi { private static final Gson gson = new Gson(); + private static final Pattern variableExpression = Pattern.compile("\\w+"); + @Autowired @Qualifier("dataUtil") private DataUtil dataUtil; @@ -63,6 +65,7 @@ public class RequestsApi { List<String> variables = extractVarCodes(q, "variables"); List<String> groupings = extractVarCodes(q, "grouping"); List<String> covariables = extractVarCodes(q, "covariables"); + String filters = extractFilters(q); List<String> allVars = new LinkedList<>(); @@ -80,16 +83,19 @@ public class RequestsApi { return ResponseEntity.ok(gson.fromJson(dataset, Object.class)); } - private List<String> extractVarCodes(JsonObject q, String field) { + private List<String> extractVarCodes(JsonObject q, String field) throws IllegalArgumentException { List<String> codes = new LinkedList<>(); JsonArray elements = q.getAsJsonArray(field) != null ? q.getAsJsonArray(field) : new JsonArray(); - Pattern p = Pattern.compile("\\w+"); + for (JsonElement var : elements) { String varCode = var.getAsJsonObject().get("code").getAsString(); - Boolean isValidString = p.matcher(varCode).matches(); - if (isValidString) { - codes.add(varCode); + + Boolean isValidString = variableExpression.matcher(varCode).matches(); + if (!isValidString) { + throw new IllegalArgumentException("You must provide valid variables"); } + + codes.add(varCode); } return codes; } -- GitLab