package render import ( "html/template" "net/http" v1 "management/internal/erpserver/service/v1" "management/internal/pkg/render/util" "management/internal/pkg/session" ) type Render interface { htmlRender jsonRender } type htmlRender interface { HTML(w http.ResponseWriter, req *http.Request, name string, data map[string]any) } type jsonRender interface { JSON(w http.ResponseWriter, data any) JSONObj(w http.ResponseWriter, message string, data any) JSONOk(w http.ResponseWriter, message string) JSONErr(w http.ResponseWriter, message string) } type render struct { templateConfig *TemplateConfig templates map[string]*template.Template session session.Manager menuService v1.MenuService } func New(session session.Manager, menuService v1.MenuService) (Render, error) { r := &render{ templateConfig: &TemplateConfig{ Root: ".", Extension: ".tmpl", Layout: "base", Partial: "partial", }, session: session, menuService: menuService, } var err error r.templates, err = util.CreateTemplateCache( r.templateConfig.Root, r.templateConfig.Layout, r.templateConfig.Partial, r.templateConfig.Extension, ) if err != nil { return nil, err } return r, nil }