package frontend import ( "html/template" "net/http" ) // Renderer rendert Seiten. type Renderer struct { templates *template.Template } // New erstellt einen neuen Renderer und sucht alle Templates aus dem gegebenen pfad. func New(path string) *Renderer { r := &Renderer{ template.Must(template.ParseGlob(path + "/*")), } return r } // RenderPage rendert eine bestimmte Seite (basierend auf dem Template-Namen) und den gegebenen Daten. func (r *Renderer) RenderPage(name string, w http.ResponseWriter, data map[string]interface{}) { err := r.templates.ExecuteTemplate(w, name, data) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } } // RenderLoginPage zeigt die Loginseite an. func (r *Renderer) RenderLoginPage(w http.ResponseWriter, data map[string]interface{}) { r.RenderPage("login", w, data) } // RenderRegistrationPage zeigt die Registrationsseite an. func (r *Renderer) RenderRegistrationPage(w http.ResponseWriter, data map[string]interface{}) { r.RenderPage("register", w, data) }