diff --git a/server/ctrladmin/ctrl.go b/server/ctrladmin/ctrl.go index c505460..e6ddcbf 100644 --- a/server/ctrladmin/ctrl.go +++ b/server/ctrladmin/ctrl.go @@ -18,9 +18,9 @@ import ( "github.com/oxtoacart/bpool" "github.com/wader/gormstore" - "go.senan.xyz/gonic/server/db" "go.senan.xyz/gonic/server/assets" "go.senan.xyz/gonic/server/ctrlbase" + "go.senan.xyz/gonic/server/db" "go.senan.xyz/gonic/version" ) @@ -146,6 +146,7 @@ type Response struct { } type handlerAdmin func(r *http.Request) *Response +type handlerAdminRaw func(w http.ResponseWriter, r *http.Request) //nolint:gocognit func (c *Controller) H(h handlerAdmin) http.Handler { @@ -212,6 +213,10 @@ func (c *Controller) H(h handlerAdmin) http.Handler { }) } +func (c *Controller) HR(h handlerAdminRaw) http.Handler { + return http.HandlerFunc(h) +} + // ## begin utilities // ## begin utilities // ## begin utilities diff --git a/server/ctrlsubsonic/ctrl.go b/server/ctrlsubsonic/ctrl.go index b820b4a..cf500f1 100644 --- a/server/ctrlsubsonic/ctrl.go +++ b/server/ctrlsubsonic/ctrl.go @@ -82,6 +82,7 @@ func writeResp(w http.ResponseWriter, r *http.Request, resp *spec.Response) erro } type handlerSubsonic func(r *http.Request) *spec.Response +type handlerSubsonicRaw func(w http.ResponseWriter, r *http.Request) *spec.Response func (c *Controller) H(h handlerSubsonic) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -96,8 +97,6 @@ func (c *Controller) H(h handlerSubsonic) http.Handler { }) } -type handlerSubsonicRaw func(w http.ResponseWriter, r *http.Request) *spec.Response - func (c *Controller) HR(h handlerSubsonicRaw) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { response := h(w, r) diff --git a/server/server.go b/server/server.go index c8d1958..d66b41d 100644 --- a/server/server.go +++ b/server/server.go @@ -89,7 +89,7 @@ func setupAdmin(r *mux.Router, ctrl *ctrladmin.Controller) { // ** begin public routes (creates session) r.Use(ctrl.WithSession) r.Handle("/login", ctrl.H(ctrl.ServeLogin)) - r.HandleFunc("/login_do", ctrl.ServeLoginDo) // "raw" handler, updates session + r.Handle("/login_do", ctrl.HR(ctrl.ServeLoginDo)) // "raw" handler, updates session assets.PrefixDo("static", func(path string, asset *assets.EmbeddedAsset) { _, name := filepath.Split(path) route := filepath.Join("/static", name) @@ -101,7 +101,7 @@ func setupAdmin(r *mux.Router, ctrl *ctrladmin.Controller) { // ** begin user routes (if session is valid) routUser := r.NewRoute().Subrouter() routUser.Use(ctrl.WithUserSession) - routUser.HandleFunc("/logout", ctrl.ServeLogout) // "raw" handler, updates session + routUser.Handle("/logout", ctrl.HR(ctrl.ServeLogout)) // "raw" handler, updates session routUser.Handle("/home", ctrl.H(ctrl.ServeHome)) routUser.Handle("/change_own_password", ctrl.H(ctrl.ServeChangeOwnPassword)) routUser.Handle("/change_own_password_do", ctrl.H(ctrl.ServeChangeOwnPasswordDo))