// 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" "leafdev.top/Ecosystem/recommender/internal/base" "leafdev.top/Ecosystem/recommender/internal/base/conf" "leafdev.top/Ecosystem/recommender/internal/base/logger" "leafdev.top/Ecosystem/recommender/internal/base/orm" "leafdev.top/Ecosystem/recommender/internal/base/redis" "leafdev.top/Ecosystem/recommender/internal/base/s3" "leafdev.top/Ecosystem/recommender/internal/base/server" "leafdev.top/Ecosystem/recommender/internal/batch" "leafdev.top/Ecosystem/recommender/internal/dao" "leafdev.top/Ecosystem/recommender/internal/handler" "leafdev.top/Ecosystem/recommender/internal/handler/grpc" "leafdev.top/Ecosystem/recommender/internal/handler/grpc/documents" "leafdev.top/Ecosystem/recommender/internal/handler/grpc/interceptor" "leafdev.top/Ecosystem/recommender/internal/handler/http" "leafdev.top/Ecosystem/recommender/internal/handler/http/controller/application_v1" "leafdev.top/Ecosystem/recommender/internal/handler/http/controller/v1" "leafdev.top/Ecosystem/recommender/internal/handler/http/middleware" "leafdev.top/Ecosystem/recommender/internal/router" "leafdev.top/Ecosystem/recommender/internal/service" "leafdev.top/Ecosystem/recommender/internal/service/application" "leafdev.top/Ecosystem/recommender/internal/service/auth" "leafdev.top/Ecosystem/recommender/internal/service/category" "leafdev.top/Ecosystem/recommender/internal/service/jwks" "leafdev.top/Ecosystem/recommender/internal/service/post" "leafdev.top/Ecosystem/recommender/internal/service/stream" "leafdev.top/Ecosystem/recommender/internal/service/user" ) // Injectors from wire.go: func CreateApp() (*base.Application, error) { loggerLogger := logger.NewZapLogger() config := conf.ProviderConfig(loggerLogger) jwksJWKS := jwks.NewJWKS(config, loggerLogger) db := orm.NewGORM(config, loggerLogger) query := dao.NewQuery(db) authService := auth.NewAuthService(config, jwksJWKS, loggerLogger, query) applicationService := application.NewService(query) applicationController := v1.NewApplicationController(authService, applicationService) application_v1ApplicationController := application_v1.NewApplicationController(authService, applicationService) streamService := stream.NewService(config) postService := post.NewService(query, config, streamService) categoryService := category.NewService(query) postController := application_v1.NewPostController(authService, applicationService, postService, categoryService) categoryController := application_v1.NewCategoryController(authService, applicationService, postService, categoryService) userService := user.NewService(query, postService, loggerLogger) redisRedis := redis.NewRedis(config) userController := application_v1.NewUserController(authService, applicationService, userService, postService, loggerLogger, redisRedis) handlers := http.NewHandler(applicationController, application_v1ApplicationController, postController, categoryController, userController) api := router.NewApiRoute(handlers) swaggerRouter := router.NewSwaggerRoute() ginLoggerMiddleware := middleware.NewGinLoggerMiddleware(loggerLogger) authMiddleware := middleware.NewAuthMiddleware(authService) jsonResponseMiddleware := middleware.NewJSONResponseMiddleware() applicationAuthMiddleware := middleware.NewApplicationAuthMiddleware(authService) httpMiddleware := http.NewMiddleware(ginLoggerMiddleware, authMiddleware, jsonResponseMiddleware, applicationAuthMiddleware) httpServer := server.NewHTTPServer(config, api, swaggerRouter, httpMiddleware) 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) serviceService := service.NewService(loggerLogger, jwksJWKS, streamService, authService, applicationService, postService, categoryService, userService) batchBatch := batch.NewBatch(loggerLogger) s3S3 := s3.NewS3(config) baseApplication := base.NewApplication(config, httpServer, handlerHandler, loggerLogger, serviceService, httpMiddleware, redisRedis, batchBatch, s3S3, db, query) return baseApplication, 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)