diff --git a/pom.xml b/pom.xml index 023639c5360aab7516e9560707fdd716e57613c7..acf9e478f8eb000ab672dfa504840da18d7b3bc8 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ <spring-data-jpa.version>1.10.11.RELEASE</spring-data-jpa.version> <spring-boot-starter-actuator.version>1.4.7.RELEASE</spring-boot-starter-actuator.version> <aspectjweaver.version>1.8.9</aspectjweaver.version> - <woken-messages.version>2.4.8</woken-messages.version> + <woken-messages.version>2.4.9</woken-messages.version> <javax-inject.version>1</javax-inject.version> <akka.version>2.5.9</akka.version> <spring-context.version>4.3.4.RELEASE</spring-context.version> diff --git a/src/main/java/eu/hbp/mip/controllers/ModelsApi.java b/src/main/java/eu/hbp/mip/controllers/ModelsApi.java index a383a97e7ae40189dc3813e9ffb0c3eae94dd567..4685056465170049ace7bee3c89268bb0951b70d 100644 --- a/src/main/java/eu/hbp/mip/controllers/ModelsApi.java +++ b/src/main/java/eu/hbp/mip/controllers/ModelsApi.java @@ -4,6 +4,8 @@ package eu.hbp.mip.controllers; +import ch.chuv.lren.mip.portal.WokenConversions; +import ch.chuv.lren.woken.messages.query.filters.FilterRule; import com.github.slugify.Slugify; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -21,6 +23,7 @@ import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import scala.Option; import java.io.IOException; import java.util.*; @@ -282,12 +285,15 @@ public class ModelsApi { allVars.addAll(model.getDataset().getHeader()); allVars.addAll(model.getDataset().getGrouping()); - String filters = model.getQuery().getFilters(); + WokenConversions conv = new WokenConversions(); + String filtersJson = model.getQuery().getFilters(); + Option<FilterRule> filters = conv.toFilterRule(filtersJson); + String filtersSQL = conv.toSqlWhere(filters); Gson gson = new Gson(); JsonObject jsonModel = gson.fromJson(gson.toJson(model, Model.class), JsonObject.class); jsonModel.get("dataset").getAsJsonObject() - .add("data", dataUtil.getDataFromVariables(allVars, filters)); + .add("data", dataUtil.getDataFromVariables(allVars, filtersSQL)); return gson.fromJson(jsonModel, Model.class); } diff --git a/src/main/scala/ch.chuv.lren/mip/portal/WokenConversions.scala b/src/main/scala/ch.chuv.lren/mip/portal/WokenConversions.scala index 1b773335b4a12672f84ffb2212928a18d4d95bf1..a6b695e05f9828c0eb9f7593311c93356e42ad1d 100644 --- a/src/main/scala/ch.chuv.lren/mip/portal/WokenConversions.scala +++ b/src/main/scala/ch.chuv.lren/mip/portal/WokenConversions.scala @@ -3,6 +3,7 @@ package ch.chuv.lren.mip.portal import eu.hbp.mip.model.Variable import ch.chuv.lren.woken.messages.datasets.DatasetId import ch.chuv.lren.woken.messages.query.filters.FilterRule +import ch.chuv.lren.woken.messages.query.filters.FilterRule._ import ch.chuv.lren.woken.messages.query.filters.queryFiltersProtocol._ import org.springframework.stereotype.Component import spray.json._ @@ -20,4 +21,6 @@ class WokenConversions { def toDatasets(datasets: java.util.List[Variable]): Set[DatasetId] = datasets.asScala.map(v => DatasetId(v.getCode)).toSet + def toSqlWhere(filter: Option[FilterRule]): String = filter.fold("")(_.toSqlWhere) + }