Skip to content

Commit fb7381c

Browse files
committed
fix: trying to solve a bug where the parent router doesn't pass its middlewares to its groups routers (part II)
1 parent 67b2a66 commit fb7381c

File tree

2 files changed

+13
-29
lines changed

2 files changed

+13
-29
lines changed

http/module.go

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,6 @@ func (m *Module) Create(
4545
m.BeforeLoadFn(m)
4646
}
4747

48-
// Append the router middlewares to the module middlewares
49-
if baseRouter.GetMiddlewares() != nil {
50-
if m.Middlewares == nil {
51-
m.Middlewares = NewMiddlewares(*baseRouter.GetMiddlewares()...)
52-
} else {
53-
// Get the base router middlewares
54-
moduleMiddlewares := NewMiddlewares(*baseRouter.GetMiddlewares()...)
55-
56-
// Append the module middlewares to the base router middlewares
57-
*moduleMiddlewares = append(*moduleMiddlewares, *m.Middlewares...)
58-
59-
// Set the module middlewares
60-
m.Middlewares = moduleMiddlewares
61-
}
62-
}
63-
6448
// Set the base route
6549
if m.Middlewares != nil {
6650
m.RouterWrapper = baseRouter.NewGroup(m.Pattern, *m.Middlewares...)

http/route/router.go

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -167,19 +167,28 @@ func NewGroup(
167167
// Initialize the multiplexer
168168
mux := http.NewServeMux()
169169

170+
// Create the middlewares slice
171+
var allMiddlewares []func(http.Handler) http.Handler
172+
173+
// Append the base router middlewares
174+
allMiddlewares = append(allMiddlewares, *baseRouter.GetMiddlewares()...)
175+
176+
// Append the new middlewares
177+
allMiddlewares = append(allMiddlewares, middlewares...)
178+
170179
// Check if there is a nil middleware
171-
for i, middleware := range middlewares {
180+
for i, middleware := range allMiddlewares {
172181
if middleware == nil {
173182
return nil, fmt.Errorf(ErrNilMiddleware, fullPath, i)
174183
}
175184
}
176185

177186
// Chain the handlers
178-
firstHandler := ChainHandlers(mux, middlewares...)
187+
firstHandler := ChainHandlers(mux, allMiddlewares...)
179188

180189
// Create a new router
181190
instance := &Router{
182-
middlewares: middlewares,
191+
middlewares: allMiddlewares,
183192
firstHandler: firstHandler,
184193
mux: mux,
185194
logger: baseRouter.logger,
@@ -301,17 +310,8 @@ func (r *Router) NewGroup(
301310
pattern string,
302311
middlewares ...func(next http.Handler) http.Handler,
303312
) *Router {
304-
// Create the middlewares slice
305-
var fullMiddlewares []func(http.Handler) http.Handler
306-
307-
// Append the base router middlewares
308-
fullMiddlewares = append(fullMiddlewares, r.middlewares...)
309-
310-
// Append the new middlewares
311-
fullMiddlewares = append(fullMiddlewares, middlewares...)
312-
313313
// Create a new group
314-
newGroup, _ := NewGroup(r, pattern, fullMiddlewares...)
314+
newGroup, _ := NewGroup(r, pattern, middlewares...)
315315
return newGroup
316316
}
317317

0 commit comments

Comments
 (0)