package tpl import ( "html/template" "net/http" systemv1 "management/internal/erpserver/biz/v1/system" "management/internal/pkg/session" ) 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 menuBiz systemv1.MenuBiz } func New(session session.ISession, menuBiz systemv1.MenuBiz) (Renderer, error) { render := &render{ session: session, menuBiz: menuBiz, 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 }