@@ -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