// Code generated by Wire. DO NOT EDIT. //go:generate go run -mod=mod github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject package cmd import ( "github.com/google/wire" "go-template/internal/base" "go-template/internal/base/conf" "go-template/internal/base/logger" "go-template/internal/base/orm" "go-template/internal/base/redis" "go-template/internal/base/s3" "go-template/internal/base/server" "go-template/internal/batch" "go-template/internal/dao" "go-template/internal/handler" "go-template/internal/handler/grpc" "go-template/internal/handler/grpc/documents" "go-template/internal/handler/grpc/interceptor" "go-template/internal/handler/http" "go-template/internal/handler/http/controller/v1" "go-template/internal/router" "go-template/internal/service" "go-template/internal/service/auth" "go-template/internal/service/jwks" "go-template/internal/service/stream" ) // Injectors from wire.go: func CreateApp() (*base.Application, error) { loggerLogger := logger.NewZapLogger() config := conf.ProviderConfig(loggerLogger) jwksJWKS := jwks.NewJWKS(config, loggerLogger) authService := auth.NewAuthService(config, jwksJWKS, loggerLogger) userController := v1.NewUserController(authService) handlers := http.NewHandler(userController) api := router.NewApiRoute(handlers) swaggerRouter := router.NewSwaggerRoute() middleware := http.NewMiddleware(config, loggerLogger, authService) httpServer := server.NewHTTPServer(config, api, swaggerRouter, middleware) db := orm.NewGORM(config, loggerLogger) query := dao.NewQuery(db) documentService := documents.NewDocumentService(query) interceptorAuth := interceptor.NewAuth(authService) interceptorLogger := interceptor.NewLogger(loggerLogger) grpcInterceptor := grpc.NewInterceptor(interceptorAuth, interceptorLogger) grpcHandlers := grpc.NewHandler(documentService, grpcInterceptor) handlerHandler := handler.NewHandler(grpcHandlers, handlers) streamService := stream.NewService(config) serviceService := service.NewService(loggerLogger, jwksJWKS, authService, streamService) redisRedis := redis.NewRedis(config) batchBatch := batch.NewBatch(loggerLogger) s3S3 := s3.NewS3(config) application := base.NewApplication(config, httpServer, handlerHandler, loggerLogger, serviceService, middleware, redisRedis, batchBatch, s3S3, db, query) return application, nil } // wire.go: var ProviderSet = wire.NewSet(conf.ProviderConfig, logger.NewZapLogger, orm.NewGORM, dao.NewQuery, redis.NewRedis, s3.NewS3, batch.NewBatch, service.Provider, handler.ProviderSet, router.ProviderSetRouter, server.NewHTTPServer, base.NewApplication)