package routes import ( "log/slog" "net/http" "gitea.henriburau.de/haw-lan/cod4watcher/services" "github.com/a-h/templ" ) type HTTPHandler func(w http.ResponseWriter, r *http.Request) error func Make(h HTTPHandler) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if err := h(w, r); err != nil { slog.Error("HTTP handler error", "err", err, "path", r.URL.Path) } } } type Server struct { cs *services.CaptureService c4s *services.CoD4Service } func NewServer(cs *services.CaptureService, c4s *services.CoD4Service) *Server { return &Server{ cs, c4s, } } func Render(w http.ResponseWriter, r *http.Request, c templ.Component) error { return c.Render(r.Context(), w) } func hxRedirect(w http.ResponseWriter, r *http.Request, url string) error { if len(r.Header.Get("HX-Request")) > 0 { w.Header().Set("hx-redirect", url) w.WriteHeader(http.StatusSeeOther) return nil } http.Redirect(w, r, url, http.StatusSeeOther) return nil }