diff --git a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java index 3e13293cf18f57605e9cca34df028883d6edb4bb..3f4de6eb58f6a3fe791b5c58640b27d73100051c 100644 --- a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java +++ b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java @@ -9,6 +9,9 @@ import com.google.gson.Gson; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; +import eu.hbp.mip.model.Algorithm; +import eu.hbp.mip.model.MiningQuery; +import eu.hbp.mip.model.Variable; import io.swagger.annotations.*; import org.apache.log4j.Logger; import org.postgresql.util.PGobject; @@ -21,8 +24,10 @@ import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.support.rowset.SqlRowSet; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.LinkedList; import java.util.List; +import java.util.stream.Collectors; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -135,12 +140,13 @@ public class VariablesApi { return ResponseEntity.ok(hierarchy); } - @ApiOperation(value = "Get groupings for histograms", response = Object.class) - @Cacheable("vars_histogram_groupings") - @RequestMapping(value = "/histogram_groupings", method = RequestMethod.GET) - public ResponseEntity<String> getHistogramGroupings( + @ApiOperation(value = "Get query for histograms", response = Object.class) + @Cacheable("vars_histogram_query") + @RequestMapping(value = "/{code}/histogram_query", method = RequestMethod.GET) + public ResponseEntity<String> getHistogramQuery( + @ApiParam(value = "code", required = true) @PathVariable("code") String code ) { - LOGGER.info("Get groupings for histograms"); + LOGGER.info("Get query for histograms"); String sqlQuery = String.format( "SELECT histogram_groupings FROM meta_variables where upper(target_table)='%s'", featuresMainTable.toUpperCase()); @@ -148,6 +154,12 @@ public class VariablesApi { data.next(); String histogramGroupings = data.getString("histogram_groupings"); + MiningQuery query = new MiningQuery(); + query.getVariables().add(new Variable(code)); + List<String> groupings = Arrays.asList(histogramGroupings.split(",")); + query.getGrouping().addAll(groupings.stream().map(Variable::new).collect(Collectors.toList())); + query.setAlgorithm(new Algorithm("histograms", "Histograms", false)); + return ResponseEntity.ok(histogramGroupings); } diff --git a/src/main/java/eu/hbp/mip/model/Algorithm.java b/src/main/java/eu/hbp/mip/model/Algorithm.java index 862136617dabf95f7e00aa8313124d93b4557c94..f861468cf2d8523b020cd4d37d7661028bd3febc 100644 --- a/src/main/java/eu/hbp/mip/model/Algorithm.java +++ b/src/main/java/eu/hbp/mip/model/Algorithm.java @@ -8,6 +8,15 @@ public class Algorithm extends ExperimentValidator { private boolean validation; + public Algorithm() { + } + + public Algorithm(String code, String name, boolean validation) { + this.validation = validation; + setCode(code); + setName(name); + } + public boolean isValidation() { return validation; } diff --git a/src/main/java/eu/hbp/mip/model/Variable.java b/src/main/java/eu/hbp/mip/model/Variable.java index fc619b87f7b029f6f6e9af74273d2649a821565a..8fc4d2dd91fae198da98c5e4251da3afa2739769 100644 --- a/src/main/java/eu/hbp/mip/model/Variable.java +++ b/src/main/java/eu/hbp/mip/model/Variable.java @@ -24,11 +24,14 @@ public class Variable { @Expose private String code = null; - + /** + * Empty constructor is needed by Hibernate + */ public Variable() { - /* - * Empty constructor is needed by Hibernate - */ + } + + public Variable(String code) { + this.code = code; } public String getCode() {