diff client/src/store/gauges.js @ 2701:e622689d73bd

client: waterlevel diagram: use endpoint
author Markus Kottlaender <markus@intevation.de>
date Mon, 18 Mar 2019 15:43:03 +0100
parents 966c94e699fa
children f393fabfdd35
line wrap: on
line diff
--- a/client/src/store/gauges.js	Mon Mar 18 15:34:37 2019 +0100
+++ b/client/src/store/gauges.js	Mon Mar 18 15:43:03 2019 +0100
@@ -18,8 +18,7 @@
   return {
     gauges: [],
     selectedGaugeISRS: null,
-    waterlevels: [],
-    loading: false
+    waterlevels: []
   };
 };
 
@@ -43,9 +42,6 @@
     },
     waterlevels: (state, data) => {
       state.waterlevels = data;
-    },
-    loading: (state, loading) => {
-      state.loading = loading;
     }
   },
   actions: {
@@ -82,25 +78,44 @@
           });
       });
     },
-    loadWaterlevels({ getters, commit }, timePeriod) {
-      let waterlevels = require("@/components/gauge/waterlevels-demo.json");
+    loadWaterlevels({ getters, commit }, { from, to }) {
+      from = from || new Date();
+      to = to || new Date();
+
+      // include the last day
+      to.setDate(to.getDate() + 1);
 
-      return new Promise(resolve => {
-        if (getters.selectedGauge && timePeriod) {
-          let data = waterlevels
-            .filter(wl => wl.gauge === getters.selectedGauge.id.split(".")[1])
-            .map(wl => {
-              wl.date = new Date(wl.date);
-              return wl;
-            });
-
-          setTimeout(() => {
+      return new Promise((resolve, reject) => {
+        HTTP.get(
+          `/data/waterlevels/${
+            getters.selectedGauge.properties.isrs_code
+          }?from=${from
+            .toISOString()
+            .substr(0, 23)}&to=${to.toISOString().substr(0, 23)}`,
+          {
+            headers: { "X-Gemma-Auth": localStorage.getItem("token") }
+          }
+        )
+          .then(response => {
+            let data = response.data
+              .split("\n")
+              .filter(wl => wl)
+              .map(wl => {
+                wl = wl.split(",");
+                return {
+                  date: new Date(wl[0]),
+                  waterlevel: Number(wl[1]),
+                  predicted: wl[2] === "f" ? false : true
+                };
+              });
+            data = data.sort((a, b) => a.date - b.date);
             commit("waterlevels", data);
             resolve(data);
-          }, 2000);
-        } else {
-          commit("waterlevels", []);
-        }
+          })
+          .catch(error => {
+            commit("waterlevels", []);
+            reject(error);
+          });
       });
     }
   }