Skip to content

Commit 578805a

Browse files
committed
refactor: added middlewares parameter to Router NewGroup function interface and implementation
* Added middlewares parameter to Router NewGroup function interface and implementation * Added the middlewares as a property to Module struct
1 parent c677e0b commit 578805a

File tree

2 files changed

+28
-40
lines changed

2 files changed

+28
-40
lines changed

http/module.go

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,10 @@ type (
1010
ModuleWrapper interface {
1111
Create(baseRouter gonethttproute.RouterWrapper) error
1212
GetRouter() gonethttproute.RouterWrapper
13-
Handler() http.Handler
1413
GetService() interface{}
1514
GetValidator() interface{}
1615
GetController() interface{}
1716
GetPath() string
18-
GetLoadFn() func(*Module)
19-
GetRegisterRoutesFn() func(*Module)
20-
GetSubmodules() *[]ModuleWrapper
2117
gonethttproute.RouterWrapper
2218
}
2319

@@ -27,14 +23,20 @@ type (
2723
Service interface{}
2824
Validator interface{}
2925
Controller interface{}
30-
LoadFn func(*Module)
31-
RegisterRoutesFn func(*Module)
26+
LoadFn func(m *Module)
27+
RegisterRoutesFn func(m *Module)
28+
Middlewares *[]func(next http.Handler) http.Handler
3229
Submodules *[]ModuleWrapper
3330
gonethttproute.RouterWrapper
3431
}
3532
)
3633

37-
// NewSubmodules is a function that creates a new submodules
34+
// NewMiddlewares is a function that creates a new middlewares slice
35+
func NewMiddlewares(middlewares ...func(next http.Handler) http.Handler) *[]func(next http.Handler) http.Handler {
36+
return &middlewares
37+
}
38+
39+
// NewSubmodules is a function that creates a new submodules slice
3840
func NewSubmodules(submodules ...ModuleWrapper) *[]ModuleWrapper {
3941
return &submodules
4042
}
@@ -49,7 +51,11 @@ func (m *Module) Create(
4951
}
5052

5153
// Set the base route
52-
m.RouterWrapper = baseRouter.NewGroup(m.Path)
54+
if m.Middlewares != nil {
55+
baseRouter = baseRouter.NewGroup(m.Path, *m.Middlewares...)
56+
} else {
57+
m.RouterWrapper = baseRouter.NewGroup(m.Path)
58+
}
5359

5460
// Register the routes
5561
if m.RegisterRoutesFn != nil {
@@ -78,15 +84,6 @@ func (m *Module) GetRouter() gonethttproute.RouterWrapper {
7884
return m.RouterWrapper
7985
}
8086

81-
// Handler is a function that returns the handler
82-
func (m *Module) Handler() http.Handler {
83-
// Check if the router is nil
84-
if m.RouterWrapper == nil {
85-
return nil
86-
}
87-
return m.RouterWrapper.Handler()
88-
}
89-
9087
// GetPath is a function that returns the path
9188
func (m *Module) GetPath() string {
9289
return m.Path
@@ -106,18 +103,3 @@ func (m *Module) GetValidator() interface{} {
106103
func (m *Module) GetController() interface{} {
107104
return m.Controller
108105
}
109-
110-
// GetLoadFn is a function that returns the load function
111-
func (m *Module) GetLoadFn() func(*Module) {
112-
return m.LoadFn
113-
}
114-
115-
// GetSubmodules is a function that returns the submodules
116-
func (m *Module) GetSubmodules() *[]ModuleWrapper {
117-
return m.Submodules
118-
}
119-
120-
// GetRegisterRoutesFn is a function that returns the register routes function
121-
func (m *Module) GetRegisterRoutesFn() func(*Module) {
122-
return m.RegisterRoutesFn
123-
}

http/route/router.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,18 @@ type (
1313
HandleFunc(
1414
path string,
1515
handler http.HandlerFunc,
16-
middlewares ...func(http.Handler) http.Handler,
16+
middlewares ...func(next http.Handler) http.Handler,
1717
)
1818
RegisterRoute(
1919
path string,
2020
handler http.HandlerFunc,
21-
middlewares ...func(http.Handler) http.Handler,
21+
middlewares ...func(next http.Handler) http.Handler,
2222
)
2323
RegisterHandler(path string, handler http.Handler)
24-
NewGroup(path string) *Router
24+
NewGroup(
25+
path string,
26+
middlewares ...func(next http.Handler) http.Handler,
27+
) *Router
2528
RegisterGroup(path string, router *Router)
2629
}
2730

@@ -40,7 +43,7 @@ func NewRouter(
4043
path string,
4144
mode *goflagsmode.Flag,
4245
logger *Logger,
43-
middlewares ...func(http.Handler) http.Handler,
46+
middlewares ...func(next http.Handler) http.Handler,
4447
) *Router {
4548
// Check if the path is empty
4649
if path == "" {
@@ -66,7 +69,7 @@ func NewRouter(
6669
func NewBaseRouter(
6770
mode *goflagsmode.Flag,
6871
logger *Logger,
69-
middlewares ...func(http.Handler) http.Handler,
72+
middlewares ...func(next http.Handler) http.Handler,
7073
) *Router {
7174
return NewRouter("", mode, logger, middlewares...)
7275
}
@@ -75,7 +78,7 @@ func NewBaseRouter(
7578
func NewGroup(
7679
baseRouter *Router,
7780
path string,
78-
middlewares ...func(http.Handler) http.Handler,
81+
middlewares ...func(next http.Handler) http.Handler,
7982
) (*Router, error) {
8083
// Check if the base router is nil
8184
if baseRouter == nil {
@@ -166,7 +169,10 @@ func (r *Router) RegisterGroup(path string, router *Router) {
166169
}
167170

168171
// NewGroup creates a new router group with a path
169-
func (r *Router) NewGroup(path string) *Router {
170-
newGroup, _ := NewGroup(r, path)
172+
func (r *Router) NewGroup(
173+
path string,
174+
middlewares ...func(next http.Handler) http.Handler,
175+
) *Router {
176+
newGroup, _ := NewGroup(r, path, middlewares...)
171177
return newGroup
172178
}

0 commit comments

Comments
 (0)