wire.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. //go:build wireinject
  2. // +build wireinject
  3. package wire
  4. import (
  5. "github.com/go-nunu/nunu-layout-advanced/internal/handler"
  6. adminHandler "github.com/go-nunu/nunu-layout-advanced/internal/handler/admin"
  7. wafHandler "github.com/go-nunu/nunu-layout-advanced/internal/handler/api/waf"
  8. "github.com/go-nunu/nunu-layout-advanced/internal/middleware"
  9. "github.com/go-nunu/nunu-layout-advanced/internal/repository"
  10. adminRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/admin"
  11. flexCdnRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/flexCdn"
  12. wafRep "github.com/go-nunu/nunu-layout-advanced/internal/repository/api/waf"
  13. "github.com/go-nunu/nunu-layout-advanced/internal/server"
  14. "github.com/go-nunu/nunu-layout-advanced/internal/service"
  15. "github.com/go-nunu/nunu-layout-advanced/internal/service/admin"
  16. "github.com/go-nunu/nunu-layout-advanced/internal/service/api/flexCdn"
  17. "github.com/go-nunu/nunu-layout-advanced/internal/service/api/gameShield"
  18. "github.com/go-nunu/nunu-layout-advanced/internal/service/api/waf"
  19. "github.com/go-nunu/nunu-layout-advanced/pkg/app"
  20. "github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
  21. "github.com/go-nunu/nunu-layout-advanced/pkg/limiter"
  22. "github.com/go-nunu/nunu-layout-advanced/pkg/log"
  23. "github.com/go-nunu/nunu-layout-advanced/pkg/server/http"
  24. "github.com/go-nunu/nunu-layout-advanced/pkg/sid"
  25. "github.com/google/wire"
  26. "github.com/spf13/viper"
  27. )
  28. var repositorySet = wire.NewSet(
  29. repository.NewDB,
  30. repository.NewRedis,
  31. repository.NewCasbinEnforcer,
  32. repository.NewMongoClient,
  33. repository.NewMongoDB,
  34. repository.NewRabbitMQ,
  35. repository.NewRepository,
  36. repository.NewTransaction,
  37. adminRep.NewAdminRepository,
  38. adminRep.NewUserRepository,
  39. repository.NewGameShieldRepository,
  40. repository.NewGameShieldPublicIpRepository,
  41. wafRep.NewWebForwardingRepository,
  42. wafRep.NewTcpforwardingRepository,
  43. wafRep.NewUdpForWardingRepository,
  44. repository.NewGameShieldUserIpRepository,
  45. repository.NewGameShieldBackendRepository,
  46. repository.NewGameShieldSdkIpRepository,
  47. repository.NewHostRepository,
  48. wafRep.NewGlobalLimitRepository,
  49. repository.NewGatewayGroupRepository,
  50. repository.NewGateWayGroupIpRepository,
  51. flexCdnRep.NewCdnRepository,
  52. wafRep.NewAllowAndDenyIpRepository,
  53. flexCdnRep.NewProxyRepository,
  54. flexCdnRep.NewCcRepository,
  55. repository.NewExpiredRepository,
  56. repository.NewLogRepository,
  57. wafRep.NewGatewayipRepository,
  58. adminRep.NewGatewayIpAdminRepository,
  59. flexCdnRep.NewCcIpListRepository,
  60. )
  61. var serviceSet = wire.NewSet(
  62. service.NewService,
  63. admin.NewUserService,
  64. admin.NewGatewayIpAdminService,
  65. admin.NewAdminService,
  66. gameShield.NewGameShieldService,
  67. service.NewAoDunService,
  68. service.NewGameShieldPublicIpService,
  69. service.NewDuedateService,
  70. service.NewFormatterService,
  71. service.NewParserService,
  72. service.NewRequiredService,
  73. service.NewCrawlerService,
  74. waf.NewWebForwardingService,
  75. waf.NewTcpforwardingService,
  76. waf.NewUdpForWardingService,
  77. service.NewGameShieldUserIpService,
  78. gameShield.NewGameShieldBackendService,
  79. service.NewGameShieldSdkIpService,
  80. service.NewHostService,
  81. waf.NewGlobalLimitService,
  82. service.NewGatewayGroupService,
  83. waf.NewWafFormatterService,
  84. service.NewGateWayGroupIpService,
  85. service.NewRequestService,
  86. flexCdn.NewCdnService,
  87. waf.NewAllowAndDenyIpService,
  88. flexCdn.NewProxyService,
  89. flexCdn.NewSslCertService,
  90. flexCdn.NewWebsocketService,
  91. flexCdn.NewCcService,
  92. service.NewLogService,
  93. waf.NewGatewayipService,
  94. flexCdn.NewCcIpListService,
  95. )
  96. var handlerSet = wire.NewSet(
  97. handler.NewHandler,
  98. adminHandler.NewUserHandler,
  99. adminHandler.NewAdminHandler,
  100. adminHandler.NewGatewayIpAdminHandler,
  101. handler.NewGameShieldHandler,
  102. handler.NewGameShieldPublicIpHandler,
  103. wafHandler.NewWebForwardingHandler,
  104. wafHandler.NewTcpforwardingHandler,
  105. wafHandler.NewUdpForWardingHandler,
  106. handler.NewGameShieldUserIpHandler,
  107. handler.NewGameShieldBackendHandler,
  108. handler.NewGameShieldSdkIpHandler,
  109. handler.NewHostHandler,
  110. wafHandler.NewGlobalLimitHandler,
  111. handler.NewGatewayGroupHandler,
  112. handler.NewGateWayGroupIpHandler,
  113. wafHandler.NewAllowAndDenyIpHandler,
  114. handler.NewCcHandler,
  115. wafHandler.NewGatewayipHandler,
  116. )
  117. // 限流器依赖集
  118. var limiterSet = wire.NewSet(
  119. limiter.NewLimiter,
  120. middleware.NewRateLimitMiddleware,
  121. )
  122. var serverSet = wire.NewSet(
  123. server.NewHTTPServer,
  124. )
  125. // build App
  126. func newApp(
  127. httpServer *http.Server,
  128. ) *app.App {
  129. return app.NewApp(
  130. app.WithServer(httpServer),
  131. app.WithName("demo-server"),
  132. )
  133. }
  134. func NewWire(*viper.Viper, *log.Logger) (*app.App, func(), error) {
  135. panic(wire.Build(
  136. repositorySet,
  137. serviceSet,
  138. handlerSet,
  139. serverSet,
  140. limiterSet,
  141. sid.NewSid,
  142. jwt.NewJwt,
  143. newApp,
  144. ))
  145. }