Compare commits

..

5 commits

4 changed files with 8 additions and 14 deletions

View file

@ -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)
}
}

View file

@ -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")
}
}

View file

@ -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")
}
}

View file

@ -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
}