package router import ( "net/http" "github.com/gorilla/mux" ) // Router wraps the mux.Router to provide additional functionality. type Router struct { *mux.Router } // HostRouter associates a host with a mux.Router. type DomainRouter struct { Domain string *mux.Router } // NewRouter creates and returns a new Router with strict slash behavior. func NewRouter() *Router { r := &Router{} r.Router = mux.NewRouter().StrictSlash(true) return r } func (r *DomainRouter) Handler(handler http.Handler) *mux.Route { return r.Router.NewRoute().Handler(handler) } // NewDomainRouter creates a new DomainRouter for a specific host. // func (r *Router) NewHostRouter(domain string, rule string) *DomainRouter { // domainRouter := &DomainRouter{ // Domain: "", // Router: nil, // } // switch rule { // case "Domain": // { // domainRouter.Router = r.NewRoute().Host(domain).Subrouter() // } // default: // { // domainRouter.Router = r.NewRoute().Host(domain).Subrouter() // } // } // return domainRouter // }