Skip to content
Snippets Groups Projects
Commit db9d1a40 authored by Mirco Nasuti's avatar Mirco Nasuti
Browse files

refactoring : try to reduce NPath complexity

parent f2c30347
No related branches found
No related tags found
No related merge requests found
...@@ -56,43 +56,19 @@ public class RequestsApi { ...@@ -56,43 +56,19 @@ public class RequestsApi {
String code = generateDSCode(query); String code = generateDSCode(query);
Date date = new Date(); Date date = new Date();
List<String> variables = new LinkedList<>();
List<String> groupings = new LinkedList<>();
List<String> covariables = new LinkedList<>();
List<String> filters = new LinkedList<>();
JsonObject q = gson.fromJson(gson.toJson(query, Query.class), JsonObject.class); JsonObject q = gson.fromJson(gson.toJson(query, Query.class), JsonObject.class);
JsonArray queryVars = q.getAsJsonArray("variables") != null ? q.getAsJsonArray("variables") : new JsonArray(); List<String> variables = extractVarCodes(q, "variables");
JsonArray queryGrps = q.getAsJsonArray("grouping") != null ? q.getAsJsonArray("grouping") : new JsonArray(); List<String> groupings = extractVarCodes(q, "grouping");
JsonArray queryCoVars = q.getAsJsonArray("covariables") != null ? q.getAsJsonArray("covariables") : new JsonArray(); List<String> covariables = extractVarCodes(q, "covariables");
JsonArray queryfltrs = q.getAsJsonArray("filter") != null ? q.getAsJsonArray("filter") : new JsonArray(); List<String> filters = extractVarCodes(q, "filter");
List<String> allVars = new LinkedList<>(); List<String> allVars = new LinkedList<>();
allVars.addAll(variables);
for (JsonElement var : queryVars) { allVars.addAll(groupings);
String varCode = var.getAsJsonObject().get("code").getAsString(); allVars.addAll(covariables);
variables.add(varCode); allVars.addAll(filters);
allVars.add(varCode);
}
for (JsonElement var : queryGrps) {
String varCode = var.getAsJsonObject().get("code").getAsString();
groupings.add(varCode);
allVars.add(varCode);
}
for (JsonElement var : queryCoVars) {
String varCode = var.getAsJsonObject().get("code").getAsString();
covariables.add(varCode);
allVars.add(varCode);
}
for (JsonElement var : queryfltrs) {
String fltCode = var.getAsJsonObject().get("code").getAsString();
filters.add(fltCode);
allVars.add(fltCode);
}
dataset.addProperty("code", code); dataset.addProperty("code", code);
dataset.addProperty("date", date.getTime()); dataset.addProperty("date", date.getTime());
...@@ -105,6 +81,16 @@ public class RequestsApi { ...@@ -105,6 +81,16 @@ public class RequestsApi {
return ResponseEntity.ok(gson.fromJson(dataset, Object.class)); return ResponseEntity.ok(gson.fromJson(dataset, Object.class));
} }
private List<String> extractVarCodes(JsonObject q, String field) {
List<String> codes = new LinkedList<>();
JsonArray elements = q.getAsJsonArray(field) != null ? q.getAsJsonArray(field) : new JsonArray();
for (JsonElement var : elements) {
String varCode = var.getAsJsonObject().get("code").getAsString();
codes.add(varCode);
}
return codes;
}
private String generateDSCode(Query query) { private String generateDSCode(Query query) {
String prefix = "DS"; String prefix = "DS";
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment