52 lines
1.1 KiB
Go
52 lines
1.1 KiB
Go
package di
|
|
|
|
import (
|
|
"gin_test/event"
|
|
"gin_test/model"
|
|
usermod "gin_test/modules/user"
|
|
"gin_test/pkg/jwt"
|
|
)
|
|
|
|
// Code generated by hand (wire-equivalent initializer).
|
|
// It expands InitializeApp wiring graph into explicit constructor calls.
|
|
func InitializeApp() (*App, error) {
|
|
cfg, err := ProvideConfig()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
dbCfg := ProvideDBConfig(cfg)
|
|
db, err := model.OpenDB(dbCfg)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
migratedVal, err := ProvideMigrated(db)
|
|
if err != nil {
|
|
_ = db.Close()
|
|
return nil, err
|
|
}
|
|
|
|
bus := event.NewDispatcher()
|
|
|
|
jwtSvc := jwt.NewService(
|
|
ProvideJWTSecret(cfg),
|
|
ProvideJWTExpirySeconds(cfg),
|
|
)
|
|
tokenListenerRegistered := ProvideTokenIssueListener(bus, jwtSvc)
|
|
|
|
jwtMiddleware := ProvideJWTMiddleware(jwtSvc, tokenListenerRegistered)
|
|
|
|
userRepo := usermod.NewUserRepo(db)
|
|
userSvc := usermod.NewService(userRepo, bus)
|
|
userHandler := usermod.NewHandler(userSvc)
|
|
|
|
router := ProvideRouter(cfg, userHandler, jwtMiddleware)
|
|
durations := ProvideServerDurations(cfg)
|
|
|
|
server := ProvideHTTPServer(cfg, router, durations, migratedVal)
|
|
app := ProvideApp(db, server, durations)
|
|
return app, nil
|
|
}
|
|
|