summaryrefslogtreecommitdiffstats
path: root/server/humidity.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/humidity.go')
-rw-r--r--server/humidity.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/server/humidity.go b/server/humidity.go
index 079c9bf..3982545 100644
--- a/server/humidity.go
+++ b/server/humidity.go
@@ -4,6 +4,7 @@ import (
"fmt"
"log"
"net/http"
+ "net/url"
"strconv"
)
@@ -93,3 +94,23 @@ func (h HumidityHandler) average() (Humidity, bool) {
}
return sum / Humidity(nRooms), true
}
+
+// Parse the value associated with each key in the query string. Returns a map of
+// keys and values, or error if one of the keys is missing or if there is no value
+// associated with one of the keys.
+func parseQuery(query string, keys []string) (map[string]string, error) {
+ queryVals, err := url.ParseQuery(query)
+ if err != nil {
+ return nil, err
+ }
+
+ vals := make(map[string]string)
+ for _, key := range keys {
+ val := queryVals.Get(key)
+ if val == "" {
+ return nil, fmt.Errorf("missing key '%s'", key)
+ }
+ vals[key] = val
+ }
+ return vals, nil
+}