aboutsummaryrefslogtreecommitdiff
path: root/pkg/ext/router.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/ext/router.go')
-rw-r--r--pkg/ext/router.go45
1 files changed, 23 insertions, 22 deletions
diff --git a/pkg/ext/router.go b/pkg/ext/router.go
index 74f0a95..8b9a310 100644
--- a/pkg/ext/router.go
+++ b/pkg/ext/router.go
@@ -1,51 +1,52 @@
package ext
import (
- "github.com/fasthttp/router"
- "github.com/valyala/fasthttp"
+ "net/http"
+
+ "github.com/gorilla/mux"
)
type (
Router struct {
middlewares []Middleware
- fastRouter *router.Router
+ router *mux.Router
}
- Middleware func(next fasthttp.RequestHandler) fasthttp.RequestHandler
- ErrorRequestHandler func(ctx *fasthttp.RequestCtx) error
+ Middleware func(next http.HandlerFunc) http.HandlerFunc
+ ErrorRequestHandler func(w http.ResponseWriter, r *http.Request) error
)
-func NewRouter(nestedRouter *router.Router) *Router {
+func NewRouter(nestedRouter *mux.Router) *Router {
return &Router{
- fastRouter: nestedRouter,
+ router: nestedRouter,
}
}
-func (self *Router) AddMiddleware(middleware Middleware) {
- self.middlewares = append(self.middlewares, middleware)
+func (r *Router) AddMiddleware(middleware Middleware) {
+ r.middlewares = append(r.middlewares, middleware)
}
-func wrapError(next ErrorRequestHandler) fasthttp.RequestHandler {
- return func(ctx *fasthttp.RequestCtx) {
- if err := next(ctx); err != nil {
- ctx.Response.SetStatusCode(500)
- InternalServerError(ctx, err)
+func wrapError(next ErrorRequestHandler) http.HandlerFunc {
+ return func(w http.ResponseWriter, r *http.Request) {
+ if err := next(w, r); err != nil {
+ w.WriteHeader(http.StatusInternalServerError)
+ InternalServerError(w, err)
}
}
}
-func (self *Router) run(next ErrorRequestHandler) fasthttp.RequestHandler {
- return func(ctx *fasthttp.RequestCtx) {
+func (r *Router) run(next ErrorRequestHandler) http.HandlerFunc {
+ return func(w http.ResponseWriter, re *http.Request) {
req := wrapError(next)
- for _, r := range self.middlewares {
+ for _, r := range r.middlewares {
req = r(req)
}
- req(ctx)
+ req(w, re)
}
}
-func (self *Router) GET(path string, handler ErrorRequestHandler) {
- self.fastRouter.GET(path, self.run(handler))
+func (r *Router) GET(path string, handler ErrorRequestHandler) {
+ r.router.HandleFunc(path, r.run(handler)).Methods("GET")
}
-func (self *Router) POST(path string, handler ErrorRequestHandler) {
- self.fastRouter.POST(path, self.run(handler))
+func (r *Router) POST(path string, handler ErrorRequestHandler) {
+ r.router.HandleFunc(path, r.run(handler)).Methods("POSt")
}