forked from GoSimplicity/LinkMe
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathwire_gen.go
More file actions
132 lines (126 loc) · 7.08 KB
/
wire_gen.go
File metadata and controls
132 lines (126 loc) · 7.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// 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 main
import (
"github.com/GoSimplicity/LinkMe/internal/api"
cache2 "github.com/GoSimplicity/LinkMe/internal/domain/events/cache"
"github.com/GoSimplicity/LinkMe/internal/domain/events/check"
"github.com/GoSimplicity/LinkMe/internal/domain/events/email"
"github.com/GoSimplicity/LinkMe/internal/domain/events/es"
"github.com/GoSimplicity/LinkMe/internal/domain/events/post"
"github.com/GoSimplicity/LinkMe/internal/domain/events/publish"
"github.com/GoSimplicity/LinkMe/internal/domain/events/sms"
"github.com/GoSimplicity/LinkMe/internal/domain/events/sync"
"github.com/GoSimplicity/LinkMe/internal/repository"
"github.com/GoSimplicity/LinkMe/internal/repository/cache"
"github.com/GoSimplicity/LinkMe/internal/repository/dao"
"github.com/GoSimplicity/LinkMe/internal/service"
"github.com/GoSimplicity/LinkMe/ioc"
"github.com/GoSimplicity/LinkMe/pkg/cachep/bloom"
"github.com/GoSimplicity/LinkMe/pkg/cachep/local"
"github.com/GoSimplicity/LinkMe/utils/jwt"
)
import (
_ "github.com/google/wire"
)
// Injectors from wire.go:
func InitWebServer() *Cmd {
db := ioc.InitDB()
node := ioc.InitializeSnowflakeNode()
logger := ioc.InitLogger()
enforcer := ioc.InitCasbin(db)
userDAO := dao.NewUserDAO(db, node, logger, enforcer)
cmdable := ioc.InitRedis()
userCache := cache.NewUserCache(cmdable)
userRepository := repository.NewUserRepository(userDAO, userCache, logger)
typedClient := ioc.InitES()
searchDAO := dao.NewSearchDAO(db, typedClient, logger)
searchRepository := repository.NewSearchRepository(searchDAO)
userService := service.NewUserService(userRepository, logger, searchRepository)
handler := jwt.NewJWTHandler(cmdable)
client := ioc.InitSaramaClient()
syncProducer := ioc.InitSyncProducer(client)
producer := sms.NewSaramaSyncProducer(syncProducer, logger)
emailProducer := email.NewSaramaSyncProducer(syncProducer, logger)
userHandler := api.NewUserHandler(userService, handler, producer, emailProducer, enforcer)
mongoClient := ioc.InitMongoDB()
postDAO := dao.NewPostDAO(db, logger, mongoClient)
cacheBloom := bloom.NewCacheBloom(cmdable)
cacheManager := local.NewLocalCacheManager(cmdable)
postRepository := repository.NewPostRepository(postDAO, logger, cacheBloom, cacheManager)
postProducer := post.NewSaramaSyncProducer(syncProducer)
publishProducer := publish.NewSaramaSyncProducer(syncProducer, logger)
postService := service.NewPostService(postRepository, logger, postProducer, publishProducer)
interactiveDAO := dao.NewInteractiveDAO(db, logger)
interactiveCache := cache.NewInteractiveCache(cmdable)
interactiveRepository := repository.NewInteractiveRepository(interactiveDAO, logger, interactiveCache)
interactiveService := service.NewInteractiveService(interactiveRepository, logger)
postHandler := api.NewPostHandler(postService, interactiveService, enforcer)
historyCache := cache.NewHistoryCache(logger, cmdable)
historyRepository := repository.NewHistoryRepository(logger, historyCache)
historyService := service.NewHistoryService(historyRepository, logger)
historyHandler := api.NewHistoryHandler(historyService)
checkDAO := dao.NewCheckDAO(db, logger)
checkCache := cache.NewCheckCache(cmdable)
checkRepository := repository.NewCheckRepository(checkDAO, checkCache, logger)
activityDAO := dao.NewActivityDAO(db, logger)
activityRepository := repository.NewActivityRepository(activityDAO)
checkService := service.NewCheckService(checkRepository, searchRepository, logger, activityRepository)
checkHandler := api.NewCheckHandler(checkService, enforcer)
v := ioc.InitMiddlewares(handler, logger)
permissionDAO := dao.NewPermissionDAO(enforcer, logger, db)
permissionRepository := repository.NewPermissionRepository(logger, permissionDAO)
permissionService := service.NewPermissionService(permissionRepository, logger)
permissionHandler := api.NewPermissionHandler(permissionService, enforcer)
rankingRedisCache := cache.NewRankingRedisCache(cmdable)
rankingLocalCache := cache.NewRankingLocalCache()
rankingRepository := repository.NewRankingCache(rankingRedisCache, rankingLocalCache, logger)
rankingService := service.NewRankingService(interactiveService, postRepository, rankingRepository, logger)
rankingHandler := api.NewRakingHandler(rankingService)
plateDAO := dao.NewPlateDAO(logger, db)
plateRepository := repository.NewPlateRepository(logger, plateDAO)
plateService := service.NewPlateService(logger, plateRepository)
plateHandler := api.NewPlateHandler(plateService, enforcer)
activityService := service.NewActivityService(activityRepository)
activityHandler := api.NewActivityHandler(activityService, enforcer)
commentDAO := dao.NewCommentService(db, logger)
commentRepository := repository.NewCommentRepository(commentDAO)
commentService := service.NewCommentService(commentRepository)
commentHandler := api.NewCommentHandler(commentService)
searchService := service.NewSearchService(searchRepository)
searchHandler := api.NewSearchHandler(searchService)
relationDAO := dao.NewRelationDAO(db, logger)
relationCache := cache.NewRelationCache(cmdable)
relationRepository := repository.NewRelationRepository(relationDAO, relationCache, logger)
relationService := service.NewRelationService(relationRepository)
relationHandler := api.NewRelationHandler(relationService)
lotteryDrawDAO := dao.NewLotteryDrawDAO(db, logger)
lotteryDrawRepository := repository.NewLotteryDrawRepository(lotteryDrawDAO, logger)
lotteryDrawService := service.NewLotteryDrawService(lotteryDrawRepository, logger)
lotteryDrawHandler := api.NewLotteryDrawHandler(lotteryDrawService)
engine := ioc.InitWebServer(userHandler, postHandler, historyHandler, checkHandler, v, permissionHandler, rankingHandler, plateHandler, activityHandler, commentHandler, searchHandler, relationHandler, lotteryDrawHandler)
cron := ioc.InitRanking(logger, rankingService)
readEventConsumer := post.NewReadEventConsumer(interactiveRepository, client, logger, historyRepository)
smsDAO := dao.NewSmsDAO(db, logger)
smsCache := cache.NewSMSCache(cmdable)
tencentSms := ioc.InitSms()
smsRepository := repository.NewSmsRepository(smsDAO, smsCache, logger, tencentSms)
smsConsumer := sms.NewSMSConsumer(smsRepository, client, logger, smsCache)
emailCache := cache.NewEmailCache(cmdable)
emailRepository := repository.NewEmailRepository(emailCache, logger)
emailConsumer := email.NewEmailConsumer(emailRepository, client, logger)
syncConsumer := sync.NewSyncConsumer(client, logger, db, mongoClient, postDAO)
cacheConsumer := cache2.NewCacheConsumer(client, logger, cmdable, cacheManager, historyCache)
publishPostEventConsumer := publish.NewPublishPostEventConsumer(checkRepository, client, logger)
checkConsumer := check.NewCheckConsumer(client, logger, postRepository, checkCache)
esConsumer := es.NewEsConsumer(client, logger, searchRepository, typedClient)
v2 := ioc.InitConsumers(readEventConsumer, smsConsumer, emailConsumer, syncConsumer, cacheConsumer, publishPostEventConsumer, checkConsumer, esConsumer)
cmd := &Cmd{
server: engine,
Cron: cron,
consumer: v2,
}
return cmd
}