From d742d77857cd1b7f83d22035b4713b052dc412d7 Mon Sep 17 00:00:00 2001 From: Joerg Lehmann Date: Sat, 3 Aug 2019 21:27:04 +0200 Subject: [PATCH] date range - not done yet... --- main.go | 4 + metrics.go | 35 +- snippets/graph.html | 78 +- .../bulma-calendar/css/bulma-calendar.min.css | 1 + static/bulma-calendar/js/bulma-calendar.js | 20184 ++++++++++++++++ .../bulma-calendar/js/bulma-calendar.min.js | 1 + 6 files changed, 20294 insertions(+), 9 deletions(-) create mode 100644 static/bulma-calendar/css/bulma-calendar.min.css create mode 100644 static/bulma-calendar/js/bulma-calendar.js create mode 100644 static/bulma-calendar/js/bulma-calendar.min.js diff --git a/main.go b/main.go index d0c33c3..19a6db0 100644 --- a/main.go +++ b/main.go @@ -54,6 +54,8 @@ func serveTemplate(w http.ResponseWriter, r *http.Request) { var datetimestring = t.Format("20060102150405") var scales = getMyDevs(userName) var last_metrics []OneMetric + + query_values := r.URL.Query() if (r.URL.Path == "/scales.html") { // wir holen noch die letzten Metriken @@ -68,11 +70,13 @@ func serveTemplate(w http.ResponseWriter, r *http.Request) { DateTimeString string Scales []string LastMetrics []OneMetric + QueryValues map[string][]string } { userName, datetimestring, scales, last_metrics, + query_values, } if err := tmpl.ExecuteTemplate(w, "layout", &data); err != nil { diff --git a/metrics.go b/metrics.go index 29608dd..09caff3 100644 --- a/metrics.go +++ b/metrics.go @@ -24,6 +24,7 @@ type OneMetric struct { BatteryPercent string } + // metrics handler func metricsHandler(response http.ResponseWriter, request *http.Request) { @@ -56,8 +57,40 @@ func metricsHandler(response http.ResponseWriter, request *http.Request) { log.Println("Url Param 'deveui' is: " + string(mydeveui)) + // Format of start and stop: YYYY-MM-DDTHH:MI:SSZ + + stop, ok := request.URL.Query()["stop"] + var mystop string + if !ok || len(stop[0]) < 1 { + log.Println("Url Param 'stop' is missing, set it to now") + mystop = time.Now().Format("2006-01-02T15:04:05Z") + } + + if ok { + mystop = stop[0] + } + + layout := "2006-01-02T15:04:05Z" + stopDate, err := time.Parse(layout, mystop) + + if err != nil { + fmt.Println(err) + } + + start, ok := request.URL.Query()["start"] + var mystart string + if !ok || len(start[0]) < 1 { + log.Println("Url Param 'start' is missing, set it to stop minus one day") + t := stopDate.AddDate(0,0,-1) + mystart = t.Format("2006-01-02T15:04:05Z") + } + + if ok { + mystart = start[0] + } + url := "http://localhost:9999/api/v2/query?org=beieliorg" - data := []byte(fmt.Sprintf(`from(bucket:"beielibucket") |> range(start:-24h) |> filter(fn: (r) => r._field == "%s") |> filter(fn: (r) => r.deveui == "%s")`,property[0],mydeveui)) + data := []byte(fmt.Sprintf(`from(bucket:"beielibucket") |> range(start: %s, stop: %s) |> filter(fn: (r) => r._field == "%s") |> filter(fn: (r) => r.deveui == "%s")`,mystart,mystop,property[0],mydeveui)) req, err := http.NewRequest("POST", url, bytes.NewBuffer(data)) if err != nil { diff --git a/snippets/graph.html b/snippets/graph.html index c33770a..ad71105 100644 --- a/snippets/graph.html +++ b/snippets/graph.html @@ -1,9 +1,15 @@ {{define "body_content"}} {{ if ne .UserName "" }} -
- Zurück -
+{{ index (index .QueryValues "deveui") 0 }} + + + + +
+
+ +
@@ -13,13 +19,69 @@
+ + + + + +