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 }