From 339785116518be164c7a75b87f6cd46ba22f4bde Mon Sep 17 00:00:00 2001 From: Mirco Nasuti <mirco.nasuti@chuv.ch> Date: Tue, 24 Oct 2017 17:36:55 +0200 Subject: [PATCH] use the features main table name to get the right metadata when multiple datasets are available --- src/main/java/eu/hbp/mip/controllers/GroupsApi.java | 6 +++++- src/main/java/eu/hbp/mip/controllers/VariablesApi.java | 8 ++++++-- tests/meta-db/sql/create.sql | 8 +++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/main/java/eu/hbp/mip/controllers/GroupsApi.java b/src/main/java/eu/hbp/mip/controllers/GroupsApi.java index bb325947c..289624981 100644 --- a/src/main/java/eu/hbp/mip/controllers/GroupsApi.java +++ b/src/main/java/eu/hbp/mip/controllers/GroupsApi.java @@ -15,6 +15,7 @@ import org.apache.log4j.Logger; import org.postgresql.util.PGobject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.Cacheable; import org.springframework.http.ResponseEntity; import org.springframework.jdbc.core.JdbcTemplate; @@ -38,6 +39,9 @@ public class GroupsApi { @Qualifier("metaJdbcTemplate") private JdbcTemplate metaJdbcTemplate; + @Value("#{'${spring.featuresDatasource.main-table:features}'}") + private String featuresMainTable; + @ApiOperation(value = "Get the root group (containing all subgroups)", response = Group.class) @Cacheable("groups") @@ -49,7 +53,7 @@ public class GroupsApi { } private String loadGroups() { - String sqlQuery = "SELECT * FROM meta_variables"; + String sqlQuery = String.format("SELECT * FROM meta_variables where target_table='%s'", featuresMainTable); SqlRowSet data = metaJdbcTemplate.queryForRowSet(sqlQuery); data.next(); String json = ((PGobject) data.getObject("hierarchy")).getValue(); diff --git a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java index 74acd1edb..e08e0d19f 100644 --- a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java +++ b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java @@ -14,6 +14,7 @@ import org.apache.log4j.Logger; import org.postgresql.util.PGobject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.Cacheable; import org.springframework.http.ResponseEntity; import org.springframework.jdbc.core.JdbcTemplate; @@ -38,6 +39,9 @@ public class VariablesApi { @Qualifier("metaJdbcTemplate") private JdbcTemplate metaJdbcTemplate; + @Value("#{'${spring.featuresDatasource.main-table:features}'}") + private String featuresMainTable; + @ApiOperation(value = "Get variables", response = List.class, responseContainer = "List") @Cacheable("variables") @@ -120,7 +124,7 @@ public class VariablesApi { ) { LOGGER.info("Get groups and variables hierarchy"); - String sqlQuery = "SELECT * FROM meta_variables"; + String sqlQuery = String.format("SELECT * FROM meta_variables where target_table='%s'", featuresMainTable); SqlRowSet data = metaJdbcTemplate.queryForRowSet(sqlQuery); data.next(); String json = ((PGobject) data.getObject("hierarchy")).getValue(); @@ -132,7 +136,7 @@ public class VariablesApi { private List<String> loadVariables() { - String sqlQuery = "SELECT * FROM meta_variables"; + String sqlQuery = String.format("SELECT * FROM meta_variables where target_table='%s'", featuresMainTable); SqlRowSet data = metaJdbcTemplate.queryForRowSet(sqlQuery); data.next(); String json = ((PGobject) data.getObject("hierarchy")).getValue(); diff --git a/tests/meta-db/sql/create.sql b/tests/meta-db/sql/create.sql index eb69c50a0..0e8a94438 100644 --- a/tests/meta-db/sql/create.sql +++ b/tests/meta-db/sql/create.sql @@ -3,9 +3,10 @@ SET datestyle to 'European'; CREATE TABLE IF NOT EXISTS meta_variables ( ID serial NOT NULL PRIMARY KEY, source varchar(256) UNIQUE NOT NULL, - hierarchy json NOT NULL + hierarchy json NOT NULL, + target_table varchar(256) UNIQUE NOT NULL ); -INSERT INTO meta_variables (source, hierarchy) VALUES ( +INSERT INTO meta_variables (source, hierarchy, target_table) VALUES ( 'features', ' { @@ -40,5 +41,6 @@ INSERT INTO meta_variables (source, hierarchy) VALUES ( }] }] } - ' + ', + 'features' ); -- GitLab