From 1a57267a17c2fc17fb6e104846fabc3e363c326c Mon Sep 17 00:00:00 2001 From: Emile Date: Fri, 16 Aug 2024 19:50:26 +0200 Subject: initial commit --- src/http.go | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/http.go (limited to 'src/http.go') diff --git a/src/http.go b/src/http.go new file mode 100644 index 0000000..894542a --- /dev/null +++ b/src/http.go @@ -0,0 +1,55 @@ +package main + +import ( + "html/template" + "net/http" +) + +type Link struct { + Name string + Target string +} + +func indexHandler(w http.ResponseWriter, r *http.Request) { + switch r.Method { + case "GET": + // define data + data := map[string]interface{}{} + data["pagelink1"] = "" + data["pagelinknext"] = []Link{ + {Name: "user/", Target: "/user"}, + {Name: "bot/", Target: "/bot"}, + {Name: "battle/", Target: "/battle"}, + } + data["pagelinkauth"] = []Link{ + {Name: "login/", Target: "/login"}, + {Name: "register/", Target: "/register"}, + } + + session, _ := globalState.sessions.Get(r, "session") + username := session.Values["username"] + + if username != nil { + data["logged_in"] = true + + user, err := UserGetUserFromUsername(username.(string)) + if err != nil { + data["err"] = "Couln't get the user" + } + data["user"] = user + } + + // get the template + t, err := template.ParseGlob("./templates/*.html") + if err != nil { + w.WriteHeader(http.StatusInternalServerError) + w.Write([]byte("500 - Error reading template file")) + return + } + + // exec! + t.ExecuteTemplate(w, "index", data) + default: + http.Redirect(w, r, "/", http.StatusMethodNotAllowed) + } +} -- cgit 1.4.1