package tpl import ( "html/template" "net/http" "management/internal/pkg/session" ) var rndr Renderer type Renderer interface { HTML(w http.ResponseWriter, req *http.Request, name string, data map[string]any) JSON(w http.ResponseWriter, data any) JSONF(w http.ResponseWriter, success bool, message string) JSONOK(w http.ResponseWriter, message string) JSONERR(w http.ResponseWriter, message string) } type render struct { session session.ISession config *TemplateConfig templates map[string]*template.Template } func New(session session.ISession) (Renderer, error) { render := &render{ session: session, config: &TemplateConfig{ Root: ".", Extension: ".tmpl", Layout: "base", Partial: "partial", }, } templates, err := render.createTemplateCache() if err != nil { return nil, err } render.templates = templates return render, nil }