diff --git a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java index 5e4620f9cec3b368d569003e921f9a1edaabc07c..d94514c6e78eda1e10c0db3459671dd2a3e770f8 100644 --- a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java +++ b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java @@ -1,6 +1,7 @@ package eu.hbp.mip.controllers; import akka.dispatch.OnSuccess; +import ch.chuv.lren.mip.portal.WokenConversions; import com.google.common.collect.Lists; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -269,11 +270,9 @@ public class ExperimentApi extends WokenClientController { } else { if (queryResult.error().nonEmpty()) { experiment.setHasServerError(true); - experiment.setResult(queryResult.error().get()); LOGGER.error("Experiment failed with message: " + queryResult.error().get()); - } else { - experiment.setResult(queryResult.data().get().compactPrint()); } + experiment.setResult(new WokenConversions().toJson(queryResult)); experiment.setFinished(Date.from(queryResult.timestamp().toInstant())); experimentRepository.save(experiment); LOGGER.info("Experiment " + uuid + " updated (finished)"); 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 a0240df7d4bf4111be1ae4819266a6a120f377df..6abe7b362661e997730feae6a0790785ca13784e 100644 --- a/src/main/scala/ch.chuv.lren/mip/portal/WokenConversions.scala +++ b/src/main/scala/ch.chuv.lren/mip/portal/WokenConversions.scala @@ -2,9 +2,10 @@ 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.QueryResult 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 ch.chuv.lren.woken.messages.query.queryProtocol._ import org.springframework.stereotype.Component import spray.json._ @@ -24,4 +25,6 @@ class WokenConversions { def toSqlWhere(filter: Option[FilterRule]): String = filter.fold("")(_.toSqlWhere) + def toJson(result: QueryResult): String = + result.toJson.compactPrint }