github.com/timoth-y/kicksware-api/order-service@v0.0.0-20201002192818-87b546a7ae5a/api/rest/gateway.go (about)

     1  package rest
     2  
     3  import (
     4  	"github.com/go-chi/chi"
     5  	"github.com/go-chi/chi/middleware"
     6  )
     7  
     8  func ProvideRoutes(rest *Handler) *chi.Mux {
     9  	router := chi.NewRouter()
    10  	router.Use(
    11  		middleware.Logger,
    12  		middleware.Recoverer,
    13  		middleware.RequestID,
    14  		middleware.RealIP,
    15  	)
    16  	router.Mount("/orders", restRoutes(rest))
    17  	router.Mount("/health", healthRoutes(rest))
    18  	return router
    19  }
    20  
    21  func restRoutes(rest *Handler) (r *chi.Mux) {
    22  	r = chi.NewRouter()
    23  	r.Use(rest.Authenticator)
    24  	r.Use(rest.Authorizer)
    25  	r.Get("/{orderID}", rest.GetOne)
    26  	r.Get("/", rest.Get)
    27  	r.Post("/query", rest.Get)
    28  	r.Post("/", rest.Post)
    29  	r.Post("/multiply", rest.Post)
    30  	r.Patch("/", rest.Patch)
    31  	r.Get("/count", rest.Count)
    32  	r.Post("/count", rest.Count)
    33  	return
    34  }
    35  
    36  func healthRoutes(rest *Handler) (r *chi.Mux)  {
    37  	r = chi.NewRouter()
    38  	r.Get("/live", rest.HealthZ)
    39  	r.Get("/ready", rest.ReadyZ)
    40  	return
    41  }