make the "raw" handlers a bit more consistent

also, todo: think about deleting them
This commit is contained in:
sentriz
2020-04-25 03:17:50 +01:00
parent 56a39126ec
commit 295bf5677f
3 changed files with 9 additions and 5 deletions

View File

@@ -18,9 +18,9 @@ import (
"github.com/oxtoacart/bpool" "github.com/oxtoacart/bpool"
"github.com/wader/gormstore" "github.com/wader/gormstore"
"go.senan.xyz/gonic/server/db"
"go.senan.xyz/gonic/server/assets" "go.senan.xyz/gonic/server/assets"
"go.senan.xyz/gonic/server/ctrlbase" "go.senan.xyz/gonic/server/ctrlbase"
"go.senan.xyz/gonic/server/db"
"go.senan.xyz/gonic/version" "go.senan.xyz/gonic/version"
) )
@@ -146,6 +146,7 @@ type Response struct {
} }
type handlerAdmin func(r *http.Request) *Response type handlerAdmin func(r *http.Request) *Response
type handlerAdminRaw func(w http.ResponseWriter, r *http.Request)
//nolint:gocognit //nolint:gocognit
func (c *Controller) H(h handlerAdmin) http.Handler { 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 // ## begin utilities
// ## begin utilities // ## begin utilities

View File

@@ -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 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 { func (c *Controller) H(h handlerSubsonic) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 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 { func (c *Controller) HR(h handlerSubsonicRaw) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
response := h(w, r) response := h(w, r)

View File

@@ -89,7 +89,7 @@ func setupAdmin(r *mux.Router, ctrl *ctrladmin.Controller) {
// ** begin public routes (creates session) // ** begin public routes (creates session)
r.Use(ctrl.WithSession) r.Use(ctrl.WithSession)
r.Handle("/login", ctrl.H(ctrl.ServeLogin)) 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) { assets.PrefixDo("static", func(path string, asset *assets.EmbeddedAsset) {
_, name := filepath.Split(path) _, name := filepath.Split(path)
route := filepath.Join("/static", name) route := filepath.Join("/static", name)
@@ -101,7 +101,7 @@ func setupAdmin(r *mux.Router, ctrl *ctrladmin.Controller) {
// ** begin user routes (if session is valid) // ** begin user routes (if session is valid)
routUser := r.NewRoute().Subrouter() routUser := r.NewRoute().Subrouter()
routUser.Use(ctrl.WithUserSession) 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("/home", ctrl.H(ctrl.ServeHome))
routUser.Handle("/change_own_password", ctrl.H(ctrl.ServeChangeOwnPassword)) routUser.Handle("/change_own_password", ctrl.H(ctrl.ServeChangeOwnPassword))
routUser.Handle("/change_own_password_do", ctrl.H(ctrl.ServeChangeOwnPasswordDo)) routUser.Handle("/change_own_password_do", ctrl.H(ctrl.ServeChangeOwnPasswordDo))