Only pass State struct pointer to StateOpen, not entire response

This commit is contained in:
Bendodroid 2024-01-14 01:53:36 +01:00
parent 44143c0c2d
commit 70b2e8069b
Signed by: bendodroid
GPG key ID: 3EEE19A0F73D5FFC
3 changed files with 10 additions and 8 deletions

View file

@ -13,7 +13,7 @@ import (
func StateOpen(
authDB config.HTTPBACredentials, validCredentials []config.HTTPBACredentialID,
resp *types.SpaceAPIResponseV14,
resp *types.SpaceState,
) func(http.ResponseWriter, *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
body := updateEndpointValidator(authDB, validCredentials, w, r)
@ -28,8 +28,8 @@ func StateOpen(
}
// Set SpaceAPI response values
resp.State.Open = newState
resp.State.LastChange = time.Now().Unix()
resp.Open = newState
resp.LastChange = time.Now().Unix()
// Respond with OK
w.WriteHeader(http.StatusOK)

View file

@ -37,7 +37,7 @@ func main() {
handlers.Root(&conf.Response),
)
http.HandleFunc("/state/open",
handlers.StateOpen(conf.Credentials, conf.Dynamic.State.Open.AllowedCredentials, &conf.Response),
handlers.StateOpen(conf.Credentials, conf.Dynamic.State.Open.AllowedCredentials, &conf.Response.State),
)
// Register handlers for Environmental Sensors
for key, envSensorConfigs := range conf.Dynamic.Sensors {

View file

@ -11,10 +11,7 @@ type SpaceAPIResponseV14 struct {
Lat float64 `json:"lat"`
Lon float64 `json:"lon"`
} `json:"location"`
State struct {
Open bool `json:"open"`
LastChange int64 `json:"lastchange"`
} `json:"state"`
State SpaceState `json:"state"`
Contact struct {
Phone string `json:"phone"`
IRC string `json:"irc"`
@ -40,6 +37,11 @@ type SpaceAPIResponseV14 struct {
} `json:"links"`
}
type SpaceState struct {
Open bool `json:"open"`
LastChange int64 `json:"lastchange"`
}
type EnvironmentSensor struct {
Value float64 `json:"value"`
Unit string `json:"unit"`