forked from WEB-IB-SS26/development-ib
Implementet the webserver exercise
parent
0ee9b3151c
commit
f090741529
|
|
@ -0,0 +1,93 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type ServerHandler int
|
||||
|
||||
type anmeldung struct {
|
||||
Vorname string `json:"vorname"`
|
||||
Nachname string `json:"nachname"`
|
||||
Email string `json:"email"`
|
||||
Telefon string `json:"telefon"`
|
||||
Sessions []string `json:"sessions"`
|
||||
Agb string `json:"agb"`
|
||||
Newsletter string `json:"newsletter"`
|
||||
Equipment string `json:"equipment"`
|
||||
Format []string `json:"format"`
|
||||
}
|
||||
|
||||
func (formHandler ServerHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Access-Control-Allow-Origin", "*") //What is that for???
|
||||
w.Header().Set("Access-Control-Allow-Methods", "POST")
|
||||
w.Header().Set("Access-Control-Allow-Headers", "Content-Type")
|
||||
|
||||
if r.Method == http.MethodOptions {
|
||||
w.WriteHeader(http.StatusOK)
|
||||
return
|
||||
}
|
||||
|
||||
if r.Method != http.MethodPost {
|
||||
http.Error(w, "Only POST requests are allowed", http.StatusMethodNotAllowed)
|
||||
return
|
||||
}
|
||||
|
||||
var vorname string
|
||||
var nachname string
|
||||
var email string
|
||||
var telefon string
|
||||
var sessions []string
|
||||
var agb string
|
||||
var newsletter string
|
||||
var equipment string
|
||||
var format []string
|
||||
|
||||
var anmeldung anmeldung
|
||||
|
||||
if err := json.NewDecoder(r.Body).Decode(&anmeldung); err != nil {
|
||||
vorname = anmeldung.Vorname
|
||||
nachname = anmeldung.Nachname
|
||||
email = anmeldung.Email
|
||||
telefon = anmeldung.Telefon
|
||||
sessions = anmeldung.Sessions
|
||||
agb = anmeldung.Agb
|
||||
newsletter = anmeldung.Newsletter
|
||||
equipment = anmeldung.Equipment
|
||||
format = anmeldung.Format
|
||||
|
||||
} else {
|
||||
if err := r.ParseForm(); err != nil {
|
||||
http.Error(w, "Fehler beim Parsen des Formulars", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
if len(r.PostForm) == 0 {
|
||||
http.Error(w, "Kein POST-Formular gesendet", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
|
||||
vorname = r.PostForm.Get("vorname")
|
||||
nachname = r.PostForm.Get("nachname")
|
||||
email = r.PostForm.Get("email")
|
||||
telefon = r.PostForm.Get("telefon")
|
||||
sessions = r.PostForm["sessions"]
|
||||
|
||||
agb = r.PostForm.Get("agb")
|
||||
newsletter = r.PostForm.Get("newsletter")
|
||||
equipment = r.PostForm.Get("equipment")
|
||||
format = r.PostForm["format"]
|
||||
}
|
||||
|
||||
response := fmt.Sprintf("Anmeldung erfolgreich! Ihre Anmeldedaten lauten:<br>Vorname: %s<br>Nachname: %s<br>E-Mail: %s<br>Telefon: %s<br>Session: %v<br>Agb: %s<br>Newsletter: %s<br>Equipment: %s<br>Format: %v<br>",
|
||||
vorname, nachname, email, telefon, sessions, agb, newsletter, equipment, format)
|
||||
w.Write([]byte(response))
|
||||
|
||||
}
|
||||
|
||||
func main() {
|
||||
var ser ServerHandler
|
||||
http.ListenAndServe("localhost:8080", ser)
|
||||
}
|
||||
Loading…
Reference in New Issue