diff --git a/handlers/root.go b/handlers/root.go index e6ee447..1015f49 100644 --- a/handlers/root.go +++ b/handlers/root.go @@ -26,8 +26,10 @@ 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 753574b..7441699 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 := string(updateEndpointValidator(authDB, validCredentials, w, r)) + body := updateEndpointValidator(authDB, validCredentials, w, r) // Parse request body - newState, err := strconv.ParseFloat(body, 64) + newState, err := strconv.ParseFloat(string(body), 64) if err != nil || math.IsInf(newState, 0) { - log.Println("Failed to parse request body from", r.RemoteAddr, "body:", body) + log.Println("Failed to parse request body from", r.RemoteAddr) w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString(w, "HTTP request body has to be a valid float64 value != +/-Inf") return @@ -32,6 +32,8 @@ 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 5db5d99..47bc6ab 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 := string(updateEndpointValidator(authDB, validCredentials, w, r)) + body := updateEndpointValidator(authDB, validCredentials, w, r) // Parse request body - newState, err := strconv.ParseBool(body) + newState, err := strconv.ParseBool(string(body)) if err != nil { - log.Println("Failed to parse request body from", r.RemoteAddr, "body:", body) + log.Println("Failed to parse request body from", r.RemoteAddr) w.WriteHeader(http.StatusBadRequest) _, _ = io.WriteString(w, "HTTP request body should either be true or false") return @@ -31,6 +31,8 @@ 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 927b6c9..625a9c0 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, "Username:", username, "Password:", password) + log.Println("Unauthorized request from", r.RemoteAddr) w.Header().Set("WWW-Authenticate", "Basic realm=\"space-api\"") w.WriteHeader(http.StatusUnauthorized) return @@ -41,5 +41,5 @@ func updateEndpointValidator( return } - return body + return }