package endpoints import ( "arbeitszeitmessung/helper" "net/http" ) func UserHandler(w http.ResponseWriter, r *http.Request) { switch r.PathValue("action") { case "login": LoginHandler(w, r) case "settings": UserSettingsHandler(w, r) case "logout": logoutUser(w, r) } } func LoginHandler(w http.ResponseWriter, r *http.Request) { switch r.Method { case http.MethodGet: showLoginPage(w, r, false) case http.MethodPost: loginUser(w, r) default: http.Error(w, "Method not allowed!", http.StatusMethodNotAllowed) } } func UserSettingsHandler(w http.ResponseWriter, r *http.Request) { helper.RequiresLogin(Session, w, r) switch r.Method { case http.MethodGet: showUserPage(w, r, 0) case http.MethodPost: switch r.FormValue("action") { case "change-pass": changePassword(w, r) case "logout-user": logoutUser(w, r) } default: http.Error(w, "Method not allowed!", http.StatusMethodNotAllowed) } }