diff options
| -rw-r--r-- | server/humidity.go | 21 | ||||
| -rw-r--r-- | server/server.go | 21 |
2 files changed, 21 insertions, 21 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 +} diff --git a/server/server.go b/server/server.go index 07b961b..31d53f4 100644 --- a/server/server.go +++ b/server/server.go @@ -4,7 +4,6 @@ import ( "fmt" "log" "net/http" - "net/url" ) const addr = ":9090" @@ -28,26 +27,6 @@ func main() { log.Fatal(http.ListenAndServe(addr, nil)) } -// 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 -} - func badRequest(w http.ResponseWriter, format string, a ...any) { log.Println("Warning: bad request:", fmt.Sprintf(format, a)) w.WriteHeader(http.StatusBadRequest) |