@@ -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
3840func 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
9188func (m * Module ) GetPath () string {
9289 return m .Path
@@ -106,18 +103,3 @@ func (m *Module) GetValidator() interface{} {
106103func (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- }
0 commit comments