github.com/apremalal/vamps-core@v1.0.1-0.20161221121535-d430b56ec174/routes/router.go (about)

     1  package routes
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"github.com/gorilla/mux"
     7  	"github.com/vedicsoft/vamps-core/controllers"
     8  )
     9  
    10  func NewRouter() *mux.Router {
    11  	router := mux.NewRouter().StrictSlash(false)
    12  
    13  	for _, route := range ApplicationRoutes {
    14  		var handler http.Handler
    15  		handler = route.HandlerFunc
    16  		if route.Secured {
    17  			if route.CheckAuth {
    18  				handler = controllers.RequireTokenAuthenticationAndAuthorization(handler)
    19  			} else {
    20  				handler = controllers.RequireTokenAuthentication(handler)
    21  			}
    22  		}
    23  		router.
    24  			Methods(route.Method).
    25  			Path(route.Pattern).
    26  			Name(route.Name).
    27  			Handler(handler)
    28  	}
    29  
    30  	return router
    31  }