diff --git a/.mockery.yaml b/.mockery.yaml index e48a307..321e958 100644 --- a/.mockery.yaml +++ b/.mockery.yaml @@ -6,5 +6,8 @@ mock-build-tags: "!compile" packages: github.com/ksysoev/wasabi: interfaces: - Dispatcher: ConnectionRegistry: + Dispatcher: + Backend: + RequestHandler: + Connection: diff --git a/dispatch/common.go b/dispatch/common.go index 3954cec..6c10e6f 100644 --- a/dispatch/common.go +++ b/dispatch/common.go @@ -3,7 +3,7 @@ package dispatch import "github.com/ksysoev/wasabi" // RequestMiddlewere is interface for request middleweres -type RequestMiddlewere func(next RequestHandler) RequestHandler +type RequestMiddlewere func(next wasabi.RequestHandler) wasabi.RequestHandler // RequestHandlerFunc is a function that implements RequestHandler interface type RequestHandlerFunc func(conn wasabi.Connection, req wasabi.Request) error @@ -12,9 +12,3 @@ type RequestHandlerFunc func(conn wasabi.Connection, req wasabi.Request) error func (f RequestHandlerFunc) Handle(conn wasabi.Connection, req wasabi.Request) error { return f(conn, req) } - -// TODO: Shall we moove it wasabi package? -// RequestHandler is interface for request handlers -type RequestHandler interface { - Handle(conn wasabi.Connection, req wasabi.Request) error -} diff --git a/dispatch/dispatcher.go b/dispatch/dispatcher.go index adbad9a..4557a1c 100644 --- a/dispatch/dispatcher.go +++ b/dispatch/dispatcher.go @@ -34,7 +34,7 @@ func (d *PipeDispatcher) Use(middlewere RequestMiddlewere) { } // useMiddleware prepare request handler with middleweres chain -func (d *PipeDispatcher) useMiddleware(endpoint RequestHandler) RequestHandler { +func (d *PipeDispatcher) useMiddleware(endpoint wasabi.RequestHandler) wasabi.RequestHandler { for i := len(d.middlewares) - 1; i >= 0; i-- { endpoint = d.middlewares[i](endpoint) } diff --git a/interfaces.go b/interfaces.go index 107d6fb..ba6a054 100644 --- a/interfaces.go +++ b/interfaces.go @@ -42,3 +42,8 @@ type Connection interface { ID() string HandleRequests() } + +// RequestHandler is interface for request handlers +type RequestHandler interface { + Handle(conn Connection, req Request) error +} diff --git a/middleware/request/error_handler.go b/middleware/request/error_handler.go index ca9c268..dfa33e7 100644 --- a/middleware/request/error_handler.go +++ b/middleware/request/error_handler.go @@ -7,8 +7,8 @@ import ( type ErrorHandler func(conn wasabi.Connection, req wasabi.Request, err error) error -func NewErrorHandlingMiddleware(onError ErrorHandler) func(next dispatch.RequestHandler) dispatch.RequestHandler { - return func(next dispatch.RequestHandler) dispatch.RequestHandler { +func NewErrorHandlingMiddleware(onError ErrorHandler) func(next wasabi.RequestHandler) wasabi.RequestHandler { + return func(next wasabi.RequestHandler) wasabi.RequestHandler { return dispatch.RequestHandlerFunc(func(conn wasabi.Connection, req wasabi.Request) error { err := next.Handle(conn, req) diff --git a/middleware/request/throttler.go b/middleware/request/throttler.go index 36eaed9..8b145cf 100644 --- a/middleware/request/throttler.go +++ b/middleware/request/throttler.go @@ -7,10 +7,10 @@ import ( type token struct{} -func NewTrottlerMiddleware(limit uint) func(next dispatch.RequestHandler) dispatch.RequestHandler { +func NewTrottlerMiddleware(limit uint) func(next wasabi.RequestHandler) wasabi.RequestHandler { sem := make(chan token, limit) - return func(next dispatch.RequestHandler) dispatch.RequestHandler { + return func(next wasabi.RequestHandler) wasabi.RequestHandler { return dispatch.RequestHandlerFunc(func(conn wasabi.Connection, req wasabi.Request) error { select { case sem <- token{}: