| 12345678910111213141516171819202122 |
- package module
- import (
- "net/http"
- "strings"
- "github.com/gorilla/mux"
- "github.com/urfave/negroni"
- )
- // NegroniRoute helps with using middlewares, found on the interwebz; called by modules when registering APIs
- func NegroniRoute(m *mux.Router, base string, path string, pathTypes string, f func(http.ResponseWriter, *http.Request), mids ...func(http.ResponseWriter, *http.Request, http.HandlerFunc)) {
- _routes := mux.NewRouter()
- _routes.HandleFunc(base+path, f).Methods(strings.Split(pathTypes, " ")...)
- _n := negroni.New()
- for i := range mids {
- _n.Use(negroni.HandlerFunc(mids[i]))
- }
- _n.UseHandler(_routes)
- m.Handle(path, _n)
- }
|