lab-development-imb/web/own_web/Anamese/main.go

63 lines
1.5 KiB
Go

package main
import (
"encoding/json"
"net/http"
"time"
)
// ist ein Struct sowas wie eine Klasse in Java ?
type Klient struct {
Name string `json:"name"`
Vorname string `json:"vorname"`
Gebdatum time.Time `json:"gebdatum"`
Geschlecht string `json:"gender"`
Gewicht int `json:"gewicht"`
Groesse int `json:"groesse"`
}
func anameseHandler(w http.ResponseWriter, r *http.Request) {
if r.Method != http.MethodPost {
http.Error(w, "Methode ungültig", http.StatusMethodNotAllowed)
return
}
// ist ka dann eine Art Objekt von der Klasse KLient?
var k Klient
err := json.NewDecoder(r.Body).Decode(&k)
if err != nil {
http.Error(w, "Kein gültiges Json", http.StatusBadRequest)
return
}
if k.Name == "" || k.Vorname == "" || k.Geschlecht == "" {
http.Error(w, "Pflichtfelder sind leer", http.StatusBadRequest)
return
}
if k.Gebdatum.IsZero() {
http.Error(w, "Geburtsdatum fehlt", http.StatusBadRequest)
return
}
if k.Gewicht == 0 || k.Groesse == 0 {
warnings = append(warnings, "BMI kann nicht berechnet werden")
}
// Erfolg und Warnung zurückgeben wnn genu wird die response varibale genutzt?
response := map[string]interface{}{
"message:": "Klient erfolgreich angelegt",
"warnings": warnings,
}
//ok response habe ich hier gefunden, aber den Rest dieses Codes verstehe ich gerade nich
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusCreated)
json.NewEncoder(w).Encode(response)
}
func main() {
}