[Lada-commits] [PATCH 3 of 4] Added new query config for messprogramme and serve it via QueryService
Wald Commits
scm-commit at wald.intevation.org
Mon Apr 27 18:50:38 CEST 2015
# HG changeset patch
# User Raimund Renkert <raimund.renkert at intevation.de>
# Date 1430153442 -7200
# Node ID cdcb7a141529a7a0161f5490adf883fad8881b8b
# Parent 93076cf1af9736e6703eea3209e73283b200353a
Added new query config for messprogramme and serve it via QueryService.
diff -r 93076cf1af97 -r cdcb7a141529 src/main/java/de/intevation/lada/query/QueryTools.java
--- a/src/main/java/de/intevation/lada/query/QueryTools.java Mon Apr 27 18:48:59 2015 +0200
+++ b/src/main/java/de/intevation/lada/query/QueryTools.java Mon Apr 27 18:50:42 2015 +0200
@@ -32,16 +32,17 @@
*/
public class QueryTools
{
- private static String FILE = "/queryconf.json";
+ private static String PROBE_CONFIG = "/probequery.json";
+ private static String MESSPROGRAMM_CONFIG = "/messprogrammquery.json";
/**
* Read the config file using the system property
* "de.intevation.lada.sqlconfig".
*
* @return The file content.
*/
- public static String readConfigFile() {
+ public static String readConfigFile(String file) {
try {
- InputStream inputStream = QueryConfig.class.getResourceAsStream(FILE);
+ InputStream inputStream = QueryConfig.class.getResourceAsStream(file);
int ch;
StringBuilder builder = new StringBuilder();
while((ch = inputStream.read()) != -1) {
@@ -62,8 +63,8 @@
*
* @return List of {@link QueryConfig} objects.
*/
- public static List<QueryConfig> getConfig() {
- String content = readConfigFile();
+ private static List<QueryConfig> getConfig(String file) {
+ String content = readConfigFile(file);
if (content == null) {
return null;
}
@@ -111,6 +112,14 @@
return configs;
}
+ public static List<QueryConfig> getProbeConfig() {
+ return getConfig(PROBE_CONFIG);
+ }
+
+ public static List<QueryConfig> getMessprogrammConfig() {
+ return getConfig(MESSPROGRAMM_CONFIG);
+ }
+
/**
* Get a query by id.
* First reads the config file and returns the {@link QueryConfig}
@@ -121,7 +130,7 @@
*/
public static JsonObject getQueryById(String id) {
try {
- String content = readConfigFile();
+ String content = readConfigFile(PROBE_CONFIG);
if (content != null) {
JsonReader reader = Json.createReader(new StringReader(content));
JsonArray queries = reader.readArray();
@@ -171,4 +180,24 @@
}
return ret;
}
+
+ public static JsonObject getMpQueryById(String id) {
+ try {
+ String content = readConfigFile(MESSPROGRAMM_CONFIG);
+ if (content != null) {
+ JsonReader reader = Json.createReader(new StringReader(content));
+ JsonArray queries = reader.readArray();
+ for (int i = 0; i < queries.size(); i++) {
+ JsonObject query = queries.getJsonObject(i);
+ if (query.getString("id").equals(id)) {
+ return query;
+ }
+ }
+ }
+ return null;
+ }
+ catch (JsonException e) {
+ return null;
+ }
+ }
}
diff -r 93076cf1af97 -r cdcb7a141529 src/main/java/de/intevation/lada/rest/QueryService.java
--- a/src/main/java/de/intevation/lada/rest/QueryService.java Mon Apr 27 18:48:59 2015 +0200
+++ b/src/main/java/de/intevation/lada/rest/QueryService.java Mon Apr 27 18:50:42 2015 +0200
@@ -51,11 +51,22 @@
public class QueryService {
/**
- * Request all configured queries.
+ * Request all configured probe queries.
*/
@GET
+ @Path("/probe")
@Produces("application/json")
- public Response get() {
- return new Response(true, 200, QueryTools.getConfig());
+ public Response getProbe() {
+ return new Response(true, 200, QueryTools.getProbeConfig());
+ }
+
+ /**
+ * Request all configured messprogramm queries.
+ */
+ @GET
+ @Path("/messprogramm")
+ @Produces("application/json")
+ public Response getMessprogramm() {
+ return new Response(true, 200, QueryTools.getMessprogrammConfig());
}
}
diff -r 93076cf1af97 -r cdcb7a141529 src/main/resources/messprogrammquery.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/resources/messprogrammquery.json Mon Apr 27 18:50:42 2015 +0200
@@ -0,0 +1,14 @@
+[
+{ "id": "1",
+ "name": "Kein Filter",
+ "description": "Abfrage der Messprogramme ohne Filter",
+ "sql": "select m.id as id, m.name as name, m.mst_id as mstId, m.umw_id as umwId from land.messprogramm m",
+ "result": [
+ {"dataIndex": "name", "header": "Name", "width": 100},
+ {"dataIndex": "mstId", "header": "MST", "width": 100},
+ {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}
+ ],
+ "filters": [
+ ]
+}
+]
diff -r 93076cf1af97 -r cdcb7a141529 src/main/resources/probequery.json
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/resources/probequery.json Mon Apr 27 18:50:42 2015 +0200
@@ -0,0 +1,80 @@
+[
+{ "id": "1",
+ "name": "Kein Filter",
+ "description": "Abfrage der Proben ohne Filter",
+ "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id",
+ "result": [
+ {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
+ {"dataIndex": "mstId", "header": "MST", "width": 100},
+ {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}
+ ],
+ "filters": [
+ ]
+},
+{ "id": "2",
+ "name": "MST und UMW",
+ "description": "Abfrage der Proben gefiltert nach Messtellen ID und ID des Umweltbereichs",
+ "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (p.mst_id = :mst_id OR '' = :mst_id) and (p.umw_id = :umw_id OR '' = :umw_id)",
+ "result": [
+ {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
+ {"dataIndex": "mstId", "header": "MST", "width": 100},
+ {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}
+ ],
+ "filters": [
+ {"dataIndex": "mst_id", "type": "listmst", "label": "Messstelle"},
+ {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich"}
+ ]
+},
+{ "id": "3",
+ "name": "Proben pro Land",
+ "description": "Proben gefiltert nach Ländern",
+ "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (netzbetreiber_id = :netz OR '' = :netz)",
+ "result": [
+ {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
+ {"dataIndex": "netzbetreiberId", "header": "Land", "width": 100},
+ {"dataIndex": "mstId", "header": "MST", "width": 100},
+ {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100},
+ {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100}
+ ],
+ "filters": [
+ {"dataIndex": "netz", "type": "listnetz", "label": "Land"}
+ ]
+},
+{ "id": "4",
+ "name": "alle Proben mit Ort",
+ "description": "alle Proben mit Entnahmeort",
+ "sql": "select p.id as id, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where o.orts_typ = 'E' or o.orts_typ is null",
+ "result": [
+ {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
+ {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50},
+ {"dataIndex": "mstId", "header": "MST", "width": 60},
+ {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100},
+ {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100},
+ {"dataIndex": "gemId", "header": "Gem-ID", "width": 100},
+ {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1}
+ ],
+ "filters": [
+ ]
+},
+{ "id": "5",
+ "name": "Proben pro Land und UMW (Multiselect)",
+ "description": "Abfrage aller Proben gefiltert pro Land und Umweltbereich (mit Mehrfachauswahl)",
+ "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, to_char(p.probeentnahme_beginn,'YYYY-mm-dd HH24:MI') entnahmeVon, to_char(p.probeentnahme_ende,'YYYY-mm-dd HH24:MI') entnahmeBis, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, o.orts_typ as ortsTyp, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p join land.probe_translation pt on p.id = pt.probe_id left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where (o.orts_typ = 'E' or o.orts_typ is null) and (p.netzbetreiber_id = :netz OR '' =:netz) and (p.umw_id similar to (:umw_id) OR '' = :umw_id)",
+ "result": [
+ {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
+ {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50},
+ {"dataIndex": "mstId", "header": "MST", "width": 50},
+ {"dataIndex": "entnahmeVon", "header": "Entnahme von", "width": 120},
+ {"dataIndex": "entnahmeBis", "header": "Entnahme bis", "width": 120},
+ {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100},
+ {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100},
+ {"dataIndex": "ortsTyp", "header": "Ortstyp", "width": 50},
+ {"dataIndex": "genId", "header": "Gemeinde-ID", "width": 100},
+ {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1}
+ ],
+ "filters": [
+ {"dataIndex": "netz", "type": "listnetz", "label": "Land"},
+ {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich", "multiselect":true}
+ ]
+}
+]
diff -r 93076cf1af97 -r cdcb7a141529 src/main/resources/queryconf.json
--- a/src/main/resources/queryconf.json Mon Apr 27 18:48:59 2015 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-[
-{ "id": "1",
- "name": "Kein Filter",
- "description": "Abfrage der Proben ohne Filter",
- "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id",
- "result": [
- {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
- {"dataIndex": "mstId", "header": "MST", "width": 100},
- {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}
- ],
- "filters": [
- ]
-},
-{ "id": "2",
- "name": "MST und UMW",
- "description": "Abfrage der Proben gefiltert nach Messtellen ID und ID des Umweltbereichs",
- "sql": "select p.id as id, pt.probe_id_alt as probeId, p.mst_id as mstId, p.umw_id as umwId from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (p.mst_id = :mst_id OR '' = :mst_id) and (p.umw_id = :umw_id OR '' = :umw_id)",
- "result": [
- {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
- {"dataIndex": "mstId", "header": "MST", "width": 100},
- {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100}
- ],
- "filters": [
- {"dataIndex": "mst_id", "type": "listmst", "label": "Messstelle"},
- {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich"}
- ]
-},
-{ "id": "3",
- "name": "Proben pro Land",
- "description": "Proben gefiltert nach Ländern",
- "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr from land.probe p join land.probe_translation pt on p.id = pt.probe_id where (netzbetreiber_id = :netz OR '' = :netz)",
- "result": [
- {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
- {"dataIndex": "netzbetreiberId", "header": "Land", "width": 100},
- {"dataIndex": "mstId", "header": "MST", "width": 100},
- {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100},
- {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100}
- ],
- "filters": [
- {"dataIndex": "netz", "type": "listnetz", "label": "Land"}
- ]
-},
-{ "id": "4",
- "name": "alle Proben mit Ort",
- "description": "alle Proben mit Entnahmeort",
- "sql": "select p.id as id, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where o.orts_typ = 'E' or o.orts_typ is null",
- "result": [
- {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
- {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50},
- {"dataIndex": "mstId", "header": "MST", "width": 60},
- {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100},
- {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100},
- {"dataIndex": "gemId", "header": "Gem-ID", "width": 100},
- {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1}
- ],
- "filters": [
- ]
-},
-{ "id": "5",
- "name": "Proben pro Land und UMW (Multiselect)",
- "description": "Abfrage aller Proben gefiltert pro Land und Umweltbereich (mit Mehrfachauswahl)",
- "sql": "select p.id as id, pt.probe_id_alt as probeId, p.netzbetreiber_id as netzbetreiberId, p.mst_id as mstId, to_char(p.probeentnahme_beginn,'YYYY-mm-dd HH24:MI') entnahmeVon, to_char(p.probeentnahme_ende,'YYYY-mm-dd HH24:MI') entnahmeBis, p.umw_id as umwId, p.hauptproben_nr as hauptprobenNr, o.orts_typ as ortsTyp, so.gem_id as gemId, v.bezeichnung as bezeichnung from land.probe p join land.probe_translation pt on p.id = pt.probe_id left outer join land.ort o on (p.id = o.probe_id) left outer join stammdaten.ort so on (o.ort_id = so.id) left outer join stammdaten.verwaltungseinheit v on (so.gem_id = v.id) where (o.orts_typ = 'E' or o.orts_typ is null) and (p.netzbetreiber_id = :netz OR '' =:netz) and (p.umw_id similar to (:umw_id) OR '' = :umw_id)",
- "result": [
- {"dataIndex": "probeId", "header": "ProbeId", "width": 100},
- {"dataIndex": "netzbetreiberId", "header": "Land", "width": 50},
- {"dataIndex": "mstId", "header": "MST", "width": 50},
- {"dataIndex": "entnahmeVon", "header": "Entnahme von", "width": 120},
- {"dataIndex": "entnahmeBis", "header": "Entnahme bis", "width": 120},
- {"dataIndex": "umwId", "header": "Umweltbereich", "width": 100},
- {"dataIndex": "hauptprobenNr", "header": "Proben-Nr", "width": 100},
- {"dataIndex": "ortsTyp", "header": "Ortstyp", "width": 50},
- {"dataIndex": "genId", "header": "Gemeinde-ID", "width": 100},
- {"dataIndex": "bezeichnung", "header": "Gemeinde", "flex": 1}
- ],
- "filters": [
- {"dataIndex": "netz", "type": "listnetz", "label": "Land"},
- {"dataIndex": "umw_id", "type": "listumw", "label": "Umweltbereich", "multiselect":true}
- ]
-}
-]
More information about the Lada-commits
mailing list