diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-11-29 14:00:43 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-11-29 14:00:43 -0500 |
| commit | 802d5a33bd77b3d177d3873c225daf2edc5286da (patch) | |
| tree | 77524dcfd79b13a19b0809a771f78933006d566c /server/humidity.go | |
| parent | 7df70d254cd383882a21c2a727ede7225e520711 (diff) | |
| download | soen422-802d5a33bd77b3d177d3873c225daf2edc5286da.zip | |
server: input validation
Diffstat (limited to 'server/humidity.go')
| -rw-r--r-- | server/humidity.go | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/server/humidity.go b/server/humidity.go index 8cffccc..e31f4fb 100644 --- a/server/humidity.go +++ b/server/humidity.go @@ -8,6 +8,11 @@ import ( "strconv" ) +const ( + minHumidity = 0.0 + maxHumidity = 100.0 +) + type Humidity float32 type HumidityHandler struct { @@ -46,7 +51,7 @@ func (h HumidityHandler) post(w http.ResponseWriter, r *http.Request) { humidityStr := queryVals["humidity"] humidity, err := strconv.ParseFloat(humidityStr, 32) - if err != nil { + if err != nil || !isValidHumidity(humidity){ badRequest(w, "invalid humidity: '%s'", humidityStr) return } @@ -79,3 +84,7 @@ func parseQuery(query string, keys []string) (map[string]string, error) { } return vals, nil } + +func isValidHumidity(humidity float64) bool { + return humidity >= minHumidity && humidity <= maxHumidity; +} |