diff client/src/store/gauges.js @ 2813:49c1570919ae

client: spuc8: use new endpoints to fetch year based and longterm waterlevel data
author Markus Kottlaender <markus@intevation.de>
date Tue, 26 Mar 2019 14:05:54 +0100
parents 16d08532c420
children 12f053763be2
line wrap: on
line diff
--- a/client/src/store/gauges.js	Tue Mar 26 13:03:10 2019 +0100
+++ b/client/src/store/gauges.js	Tue Mar 26 14:05:54 2019 +0100
@@ -25,7 +25,8 @@
     gauges: [],
     selectedGaugeISRS: null,
     waterlevels: [],
-    meanWaterlevels: [],
+    longtermWaterlevels: [],
+    yearWaterlevels: [],
     nashSutcliffe: null,
     dateFrom: dateFrom,
     dateTo: dateTo
@@ -53,8 +54,11 @@
     waterlevels: (state, data) => {
       state.waterlevels = data;
     },
-    meanWaterlevels: (state, data) => {
-      state.meanWaterlevels = data;
+    longtermWaterlevels: (state, data) => {
+      state.longtermWaterlevels = data;
+    },
+    yearWaterlevels: (state, data) => {
+      state.yearWaterlevels = data;
     },
     nashSutcliffe: (state, data) => {
       state.nashSutcliffe = data;
@@ -139,19 +143,26 @@
           });
       });
     },
-    loadMeanWaterlevels({ state, commit }) {
+    loadLongtermWaterlevels({ state, commit }) {
       return new Promise((resolve, reject) => {
-        HTTP.get(`/data/average-waterlevels/${state.selectedGaugeISRS}`, {
+        HTTP.get(`/data/longterm-waterlevels/${state.selectedGaugeISRS}`, {
           headers: { "X-Gemma-Auth": localStorage.getItem("token") }
         })
           .then(response => {
+            const now = new Date();
             let data = response.data
               .split("\n")
               .filter((wl, i) => wl && i) // remove empty rows and first row
               .map(wl => {
                 wl = wl.split(",");
+                let dayAndMonth = wl[0].split("-").map(n => Number(n));
+                let date = new Date(
+                  now.getFullYear(),
+                  dayAndMonth[1] - 1,
+                  dayAndMonth[0]
+                );
                 return {
-                  date: new Date(wl[0]),
+                  date: date,
                   min: Number(wl[1]),
                   max: Number(wl[2]),
                   mean: Number(wl[3]),
@@ -161,11 +172,49 @@
                 };
               });
             data = data.sort((a, b) => a.date - b.date);
-            commit("meanWaterlevels", data);
+            commit("longtermWaterlevels", data);
             resolve(data);
           })
           .catch(error => {
-            commit("meanWaterlevels", []);
+            commit("longtermWaterlevels", []);
+            reject(error);
+          });
+      });
+    },
+    loadYearWaterlevels({ state, commit }, year) {
+      return new Promise((resolve, reject) => {
+        HTTP.get(`/data/year-waterlevels/${state.selectedGaugeISRS}/${year}`, {
+          headers: { "X-Gemma-Auth": localStorage.getItem("token") }
+        })
+          .then(response => {
+            const now = new Date();
+            let data = response.data
+              .split("\n")
+              .filter((wl, i) => wl && i) // remove empty rows and first row
+              .map(wl => {
+                wl = wl.split(",");
+                let dayAndMonth = wl[0].split("-").map(n => Number(n));
+                let date = new Date(
+                  now.getFullYear(),
+                  dayAndMonth[1] - 1,
+                  dayAndMonth[0]
+                );
+                return {
+                  date: date,
+                  min: Number(wl[1]),
+                  max: Number(wl[2]),
+                  mean: Number(wl[3]),
+                  median: Number(wl[4]),
+                  q25: Number(wl[5]),
+                  q75: Number(wl[6])
+                };
+              });
+            data = data.sort((a, b) => a.date - b.date);
+            commit("yearWaterlevels", data);
+            resolve(data);
+          })
+          .catch(error => {
+            commit("yearWaterlevels", []);
             reject(error);
           });
       });