wire.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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/job"
  7. "github.com/go-nunu/nunu-layout-advanced/internal/middleware"
  8. "github.com/go-nunu/nunu-layout-advanced/internal/repository"
  9. "github.com/go-nunu/nunu-layout-advanced/internal/server"
  10. "github.com/go-nunu/nunu-layout-advanced/internal/service"
  11. "github.com/go-nunu/nunu-layout-advanced/pkg/app"
  12. "github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
  13. "github.com/go-nunu/nunu-layout-advanced/pkg/limiter"
  14. "github.com/go-nunu/nunu-layout-advanced/pkg/log"
  15. "github.com/go-nunu/nunu-layout-advanced/pkg/server/http"
  16. "github.com/go-nunu/nunu-layout-advanced/pkg/sid"
  17. "github.com/google/wire"
  18. "github.com/spf13/viper"
  19. )
  20. var repositorySet = wire.NewSet(
  21. repository.NewDB,
  22. //repository.NewRedis,
  23. repository.NewRepository,
  24. repository.NewTransaction,
  25. repository.NewUserRepository,
  26. repository.NewGameShieldRepository,
  27. repository.NewGameShieldPublicIpRepository,
  28. repository.NewWebForwardingRepository,
  29. repository.NewTcpforwardingRepository,
  30. repository.NewUdpForWardingRepository,
  31. repository.NewGameShieldUserIpRepository,
  32. repository.NewWebLimitRepository,
  33. repository.NewTcpLimitRepository,
  34. repository.NewUdpLimitRepository,
  35. repository.NewGameShieldBackendRepository,
  36. repository.NewGameShieldSdkIpRepository,
  37. repository.NewHostRepository,
  38. )
  39. var serviceSet = wire.NewSet(
  40. service.NewService,
  41. service.NewUserService,
  42. service.NewGameShieldService,
  43. service.NewCrawlerService,
  44. service.NewGameShieldPublicIpService,
  45. service.NewDuedateService,
  46. service.NewFormatterService,
  47. service.NewParserService,
  48. service.NewRequiredService,
  49. service.NewWebForwardingService,
  50. service.NewTcpforwardingService,
  51. service.NewUdpForWardingService,
  52. service.NewGameShieldUserIpService,
  53. service.NewWebLimitService,
  54. service.NewTcpLimitService,
  55. service.NewUdpLimitService,
  56. service.NewGameShieldBackendService,
  57. service.NewGameShieldSdkIpService,
  58. service.NewHostService,
  59. )
  60. var handlerSet = wire.NewSet(
  61. handler.NewHandler,
  62. handler.NewUserHandler,
  63. handler.NewGameShieldHandler,
  64. handler.NewGameShieldPublicIpHandler,
  65. handler.NewWebForwardingHandler,
  66. handler.NewTcpforwardingHandler,
  67. handler.NewUdpForWardingHandler,
  68. handler.NewGameShieldUserIpHandler,
  69. handler.NewWebLimitHandler,
  70. handler.NewTcpLimitHandler,
  71. handler.NewUdpLimitHandler,
  72. handler.NewGameShieldBackendHandler,
  73. handler.NewGameShieldSdkIpHandler,
  74. handler.NewHostHandler,
  75. )
  76. var jobSet = wire.NewSet(
  77. job.NewJob,
  78. job.NewUserJob,
  79. )
  80. // 限流器依赖集
  81. var limiterSet = wire.NewSet(
  82. limiter.NewLimiter,
  83. middleware.NewRateLimitMiddleware,
  84. )
  85. var serverSet = wire.NewSet(
  86. server.NewHTTPServer,
  87. server.NewJobServer,
  88. )
  89. // build App
  90. func newApp(
  91. httpServer *http.Server,
  92. jobServer *server.JobServer,
  93. // task *server.Task,
  94. ) *app.App {
  95. return app.NewApp(
  96. app.WithServer(httpServer, jobServer),
  97. app.WithName("demo-server"),
  98. )
  99. }
  100. func NewWire(*viper.Viper, *log.Logger) (*app.App, func(), error) {
  101. panic(wire.Build(
  102. repositorySet,
  103. serviceSet,
  104. handlerSet,
  105. jobSet,
  106. serverSet,
  107. limiterSet,
  108. sid.NewSid,
  109. jwt.NewJwt,
  110. newApp,
  111. ))
  112. }