Skip to content

Commit df8894d

Browse files
committed
update routes
1 parent 21a395d commit df8894d

2 files changed

Lines changed: 24 additions & 22 deletions

File tree

middleware/middleware.go

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,28 +12,6 @@ import (
1212

1313
var Log = config.Cfg().GetLogger()
1414

15-
// `Use` allows us to stack middleware to process the request
16-
// Example taken from https://github.com/gorilla/mux/pull/36#issuecomment-25849172
17-
func Use(handler http.HandlerFunc, mid ...func(http.Handler) http.HandlerFunc) http.HandlerFunc {
18-
for _, m := range mid {
19-
handler = m(handler)
20-
}
21-
return handler
22-
}
23-
24-
func RecoverAndLog(handler http.Handler) http.HandlerFunc {
25-
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
26-
defer func() {
27-
r := recover()
28-
if r != nil {
29-
jsonhttp.JSONInternalError(w, "An internal server error occurred", "Please try again in a few seconds")
30-
Log.Error("Panic occurred in HTTP handler:", r)
31-
}
32-
}()
33-
handler.ServeHTTP(w, r)
34-
})
35-
}
36-
3715
func GetContext(handler http.Handler) http.HandlerFunc {
3816
return func(w http.ResponseWriter, r *http.Request) {
3917
var passItOn = func() {

routes/routes.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package routes
2+
3+
import (
4+
"github.com/exlinc/golang-utils/httpmiddleware"
5+
"github.com/exlskills/demo-go-webservice/config"
6+
"github.com/exlskills/demo-go-webservice/controllers/v1"
7+
"github.com/exlskills/demo-go-webservice/middleware"
8+
"github.com/gorilla/mux"
9+
"net/http"
10+
)
11+
12+
var Log = config.Cfg().GetLogger()
13+
14+
func CreateRouter() http.Handler {
15+
router := mux.NewRouter()
16+
router.StrictSlash(true)
17+
18+
// V1 Routes
19+
v1Router := router.PathPrefix("/v1").Subrouter()
20+
v1Router.HandleFunc("/", v1.API).Methods("GET")
21+
v1Router.HandleFunc("/gophers", httpmiddleware.Use(v1.GetGophers, middleware.RequireAPIKey)).Methods("GET")
22+
23+
return httpmiddleware.Use(router.ServeHTTP, middleware.GetContext, httpmiddleware.RecoverInternalServerError)
24+
}

0 commit comments

Comments
 (0)