added: app modules register
This commit is contained in:
parent
5ffb6dde46
commit
7e5010ac78
5 changed files with 85 additions and 7 deletions
|
|
@ -11,23 +11,40 @@ import (
|
|||
|
||||
type App struct {
|
||||
address string
|
||||
apiPrefix string
|
||||
modules []interfaces.Module
|
||||
routerHandler interfaces.Router
|
||||
router *gin.Engine
|
||||
}
|
||||
|
||||
type Deps struct {
|
||||
Host string
|
||||
Port string
|
||||
Router interfaces.Router
|
||||
Host string
|
||||
Port string
|
||||
ApiPrefix string
|
||||
Modules []interfaces.Module
|
||||
RouterHandler interfaces.Router
|
||||
}
|
||||
|
||||
func NewApp(deps Deps) *App {
|
||||
app := &App{
|
||||
address: deps.Host + ":" + deps.Port,
|
||||
routerHandler: deps.Router,
|
||||
apiPrefix: deps.ApiPrefix,
|
||||
routerHandler: deps.RouterHandler,
|
||||
modules: deps.Modules,
|
||||
}
|
||||
|
||||
app.router = app.routerHandler.Set()
|
||||
apiRoutes := app.router.Group(app.apiPrefix)
|
||||
|
||||
apiRoutes.GET("/", func(c *gin.Context) {
|
||||
c.String(http.StatusOK, "API is ready")
|
||||
})
|
||||
|
||||
for _, m := range app.modules {
|
||||
if hasRoutes, ok := m.(interfaces.ModuleRoutes); ok {
|
||||
hasRoutes.RegisterRoutes(apiRoutes)
|
||||
}
|
||||
}
|
||||
|
||||
return app
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue