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 }