diff --git a/handlers/root.go b/handlers/root.go index 1015f49..e6ee447 100644 --- a/handlers/root.go +++ b/handlers/root.go @@ -26,10 +26,8 @@ func Root(resp *types.SpaceAPIResponseV14) func(http.ResponseWriter, *http.Reque return } - // Respond with OK w.Header().Set("Access-Control-Allow-Origin", "*") w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) _, _ = w.Write(response) } } diff --git a/handlers/sensors.go b/handlers/sensors.go index 7441699..753574b 100644 --- a/handlers/sensors.go +++ b/handlers/sensors.go @@ -17,12 +17,12 @@ func EnvironmentSensor( resp *types.EnvironmentSensor, ) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - body := updateEndpointValidator(authDB, validCredentials, w, r) + body := string(updateEndpointValidator(authDB, validCredentials, w, r)) // Parse request body - newState, err := strconv.ParseFloat(string(body), 64) + newState, err := strconv.ParseFloat(body, 64) if err != nil || math.IsInf(newState, 0) { - log.Println("Failed to parse request body from", r.RemoteAddr) + log.Println("Failed to parse request body from", r.RemoteAddr, "body:", body) w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString(w, "HTTP request body has to be a valid float64 value != +/-Inf") return @@ -32,8 +32,6 @@ func EnvironmentSensor( resp.Value = newState resp.LastChange = time.Now().Unix() - // Respond with OK - w.WriteHeader(http.StatusOK) _, _ = io.WriteString(w, "Update Successful") } } diff --git a/handlers/state.go b/handlers/state.go index 47bc6ab..5db5d99 100644 --- a/handlers/state.go +++ b/handlers/state.go @@ -16,12 +16,12 @@ func StateOpen( resp *types.SpaceState, ) func(http.ResponseWriter, *http.Request) { return func(w http.ResponseWriter, r *http.Request) { - body := updateEndpointValidator(authDB, validCredentials, w, r) + body := string(updateEndpointValidator(authDB, validCredentials, w, r)) // Parse request body - newState, err := strconv.ParseBool(string(body)) + newState, err := strconv.ParseBool(body) if err != nil { - log.Println("Failed to parse request body from", r.RemoteAddr) + log.Println("Failed to parse request body from", r.RemoteAddr, "body:", body) w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString(w, "HTTP request body should either be true or false") return @@ -31,8 +31,6 @@ func StateOpen( resp.Open = newState resp.LastChange = time.Now().Unix() - // Respond with OK - w.WriteHeader(http.StatusOK) _, _ = io.WriteString(w, "Update Successful") } } diff --git a/handlers/util.go b/handlers/util.go index 625a9c0..927b6c9 100644 --- a/handlers/util.go +++ b/handlers/util.go @@ -18,7 +18,7 @@ func updateEndpointValidator( // Check BasicAuth credentials username, password, ok := r.BasicAuth() if !ok || !util.CheckCredentials(authDB, validCredentials, username, password) { - log.Println("Unauthorized request from", r.RemoteAddr) + log.Println("Unauthorized request from", r.RemoteAddr, "Username:", username, "Password:", password) w.Header().Set("WWW-Authenticate", "Basic realm=\"space-api\"") w.WriteHeader(http.StatusUnauthorized) return @@ -41,5 +41,5 @@ func updateEndpointValidator( return } - return + return body }