3
0
corteza/crm/rest/router.go
2018-10-15 14:46:35 +00:00

37 lines
815 B
Go

package rest
import (
"github.com/go-chi/chi"
"github.com/crusttech/crust/crm/rest/handlers"
"github.com/crusttech/crust/crm/service"
"github.com/crusttech/crust/internal/auth"
)
func MountRoutes(jwtAuth auth.TokenEncoder) func(chi.Router) {
var (
fieldSvc = service.Field()
moduleSvc = service.Module()
contentSvc = service.Content()
pageSvc = service.Page()
)
var (
field = Field{}.New(fieldSvc)
module = Module{}.New(moduleSvc, contentSvc)
page = Page{}.New(pageSvc)
)
// Initialize handers & controllers.
return func(r chi.Router) {
// Protect all _private_ routes
r.Group(func(r chi.Router) {
r.Use(auth.MiddlewareValidOnly)
handlers.NewField(field).MountRoutes(r)
handlers.NewPage(page).MountRoutes(r)
handlers.NewModule(module).MountRoutes(r)
})
}
}