From bb9d85e9f7d568f276ecfd3ed025c2d5a4d33629 Mon Sep 17 00:00:00 2001 From: Manuel Spuhler <manuel.spuhler@chuv.ch> Date: Thu, 15 Feb 2018 16:07:15 +0100 Subject: [PATCH] Ludovic's code --- docker/README.md | 1 + docker/config/application.tmpl | 1 + .../PersistenceConfiguration.java | 1 + .../eu/hbp/mip/controllers/DatasetsApi.java | 39 ++++++++++++------- 4 files changed, 27 insertions(+), 15 deletions(-) diff --git a/docker/README.md b/docker/README.md index 419dd0798..33262bdde 100644 --- a/docker/README.md +++ b/docker/README.md @@ -24,6 +24,7 @@ To use this image, you need a running instance of PostgreSQL and to configure th * FEATURES_DB_USER: User to use when connecting to the science database, default value is "postgres". * FEATURES_DB_PASSWORD: Password to use when connecting to the science database. * FEATURES_DB_MAIN_TABLE: Table that contains the scientific data to use, default value is "features". +* DATASETS (temporary hack): list of datasets available in the features table ### OAUTH2 LOGIN diff --git a/docker/config/application.tmpl b/docker/config/application.tmpl index 16a901f6b..3be9dac65 100644 --- a/docker/config/application.tmpl +++ b/docker/config/application.tmpl @@ -21,6 +21,7 @@ spring: username: {{ default .Env.FEATURES_DB_USER "postgres" }} password: {{ .Env.FEATURES_DB_PASSWORD }} driver-class-name: org.postgresql.Driver + datasets: {{ .Env.DATASETS }} jpa: hibernate: dialect: org.hibernate.dialect.PostgreSQL9Dialect diff --git a/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java b/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java index eb783e675..9efcec064 100644 --- a/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java +++ b/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java @@ -16,6 +16,7 @@ import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; import javax.sql.DataSource; +import java.util.List; /** * Created by mirco on 11.07.16. diff --git a/src/main/java/eu/hbp/mip/controllers/DatasetsApi.java b/src/main/java/eu/hbp/mip/controllers/DatasetsApi.java index 81d9e72e0..446b3af00 100644 --- a/src/main/java/eu/hbp/mip/controllers/DatasetsApi.java +++ b/src/main/java/eu/hbp/mip/controllers/DatasetsApi.java @@ -6,19 +6,23 @@ package eu.hbp.mip.controllers; import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonObject; import eu.hbp.mip.model.Dataset; +import eu.hbp.mip.model.Variable; +import eu.hbp.mip.repositories.VariableRepository; import io.swagger.annotations.*; import eu.hbp.mip.repositories.DatasetRepository; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.PostConstruct; + import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; @@ -33,25 +37,30 @@ public class DatasetsApi { @Autowired private DatasetRepository datasetRepository; + @Autowired + private VariableRepository variableRepository; + + @Value("#{'${spring.featuresDatasource.datasets:adni,ppmi,edsd}'}") + private String datasets; + + @PostConstruct + public void init() { + for (String dataset: datasets.split(",")) { + Variable v = variableRepository.findOne(dataset); + if (v == null) { + v = new Variable(dataset); + variableRepository.save(v); + } + } + } + @ApiOperation(value = "Get dataset list", response = Dataset.class, responseContainer = "List") @RequestMapping(method = RequestMethod.GET) public ResponseEntity getDatasets( ) { LOGGER.info("Get dataset list"); - JsonArray datasets = new JsonArray(); - - JsonObject o = new JsonObject(); - o.addProperty("code", "chuv"); - o.addProperty("label", "CHUV"); - datasets.add(o); - - JsonObject p = new JsonObject(); - p.addProperty("code", "brescia"); - p.addProperty("label", "Brescia"); - datasets.add(p); - - return ResponseEntity.ok(gson.toJson(datasets)); + return ResponseEntity.ok(datasets.split(",")); } } -- GitLab