From 482f625b1df83c194eb318dc983b8851e76fdba6 Mon Sep 17 00:00:00 2001 From: Richard Dern Date: Thu, 2 May 2024 21:00:24 +0200 Subject: [PATCH] Commit initial --- src/server.go | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/server.go diff --git a/src/server.go b/src/server.go new file mode 100644 index 0000000..2c0a181 --- /dev/null +++ b/src/server.go @@ -0,0 +1,58 @@ +package main + +import ( + "encoding/json" + "net/http" + "os" + "log" +) + +var dataStore map[string]string + +func updateWeatherStation(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + http.Error(w, "Unsupported method", http.StatusMethodNotAllowed) + return + } + + // RĂ©initialiser dataStore + dataStore = make(map[string]string) + + r.ParseForm() + + for key, value := range r.Form { + dataStore[key] = value[0] + } + + // RĂ©pondre avec HTTP 200 OK + w.WriteHeader(http.StatusOK) +} + +func getData(w http.ResponseWriter, r *http.Request) { + if r.Method != "GET" { + http.Error(w, "Unsupported method", http.StatusMethodNotAllowed) + return + } + + w.Header().Set("Content-Type", "application/json") + json.NewEncoder(w).Encode(dataStore) +} + +func main() { + dataStore = make(map[string]string) + + port := os.Getenv("PORT") + + if port == "" { + log.Fatal("PORT environment variable is not set") + } + + http.HandleFunc("/weatherstation/updateweatherstation.php", updateWeatherStation) + http.HandleFunc("/", getData) + + err := http.ListenAndServe(":" + port, nil) + + if err != nil { + log.Fatal("Error starting server: ", err) + } +}