package web import ( "fuj-management/go/internal/web/api" "net/http" ) // HTMLHandler serves the Go-native HTML frontend. type HTMLHandler struct { renderer *Renderer build BuildInfo apiHandler *api.Handler } // NewHTMLHandler constructs an HTMLHandler. func NewHTMLHandler(r *Renderer, b BuildInfo, ah *api.Handler) *HTMLHandler { return &HTMLHandler{renderer: r, build: b, apiHandler: ah} } func (h *HTMLHandler) ServeAdults(w http.ResponseWriter, r *http.Request) { data, err := h.apiHandler.AssembleAdults(r.Context()) if err != nil { h.renderer.Render(w, "adults", AdultsPageData{ PageData: PageData{Active: "adults", Build: h.build}, Error: err.Error(), }) return } h.renderer.Render(w, "adults", AdultsPageData{ PageData: PageData{Active: "adults", Build: h.build}, Data: data, }) } func (h *HTMLHandler) ServeJuniors(w http.ResponseWriter, r *http.Request) { h.renderer.Render(w, "juniors", PageData{Active: "juniors", Build: h.build}) } func (h *HTMLHandler) ServePayments(w http.ResponseWriter, r *http.Request) { h.renderer.Render(w, "payments", PageData{Active: "payments", Build: h.build}) } func (h *HTMLHandler) ServeSync(w http.ResponseWriter, r *http.Request) { h.renderer.Render(w, "sync", PageData{Active: "sync", Build: h.build}) } func (h *HTMLHandler) ServeFlushCache(w http.ResponseWriter, r *http.Request) { h.renderer.Render(w, "flush_cache", PageData{Active: "flush", Build: h.build}) }