package pkg import ( "html/template" "net/http" ) func NewRouter(db *Db) http.Handler { router := http.NewServeMux() router.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("web/static")))) router.Handle("/login", LoginHandler(db)) router.Handle("/logout", LogoutHandler(db)) router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { user := getUser(r) if user.LoggedIn { t, err := template.ParseFiles("web/template/index.html") if err != nil { panic(err) } err = t.Execute(w, nil) if err != nil { panic(err) } } else { var page LoginPage; t, err := template.ParseFiles("web/template/login.html") if err != nil { panic(err) } err = t.Execute(w, page) if err != nil { panic(err) } } }) var handler http.Handler = router handler = CheckLogin(db, handler) handler = Recoverer(handler) handler = Logger(handler) return handler }