diff --git a/docker/README.md b/docker/README.md index 419dd079818055f01a0e70f781e42d5221d80268..33262bddeb289cca0a33a980fcd462b8e3fc4d9b 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 16a901f6b08c45917d5764a813c78a91a7952f69..3be9dac65d1d9940ec57301c9a42bd6a29b92925 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 eb783e67547dd34fd65aa17c95d894c6af4f2c51..9efcec064fe110f81e27429042ed7f28c5ba3485 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 81d9e72e073e7b1bfb7b49bb5d476c271c5ab51e..446b3af003afb78e09e7455ed72c71c24f247ec6 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(",")); } }