wire.go 3.8 KB

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