//go:build wireinject // +build wireinject package wire import ( "github.com/gin-gonic/gin" "github.com/google/wire" "github.com/spf13/viper" "projectName/internal/handler" "projectName/internal/middleware" "projectName/internal/repository" "projectName/internal/server" "projectName/internal/service" "projectName/pkg/log" ) var ServerSet = wire.NewSet(server.NewServerHTTP) var RepositorySet = wire.NewSet( repository.NewDb, repository.NewRepository, repository.NewUserRepository, ) var ServiceSet = wire.NewSet( service.NewService, service.NewUserService, service.NewIpService, ) var HandlerSet = wire.NewSet( handler.NewHandler, handler.NewUserHandler, handler.NewIpHandler, ) var MiddlewareSet = wire.NewSet( middleware.NewIPAllowlist, middleware.NewIPRateLimiter, ) func NewWire(*viper.Viper, *log.Logger) (*gin.Engine, func(), error) { panic(wire.Build( ServerSet, RepositorySet, ServiceSet, HandlerSet, MiddlewareSet, )) }