nunu-layout-admin/cmd/server/wire/wire.go

76 lines
1.4 KiB
Go

//go:build wireinject
// +build wireinject
package wire
import (
"github.com/google/wire"
"github.com/spf13/viper"
"nunu-layout-admin/internal/handler"
"nunu-layout-admin/internal/job"
"nunu-layout-admin/internal/repository"
"nunu-layout-admin/internal/server"
"nunu-layout-admin/internal/service"
"nunu-layout-admin/pkg/app"
"nunu-layout-admin/pkg/jwt"
"nunu-layout-admin/pkg/log"
"nunu-layout-admin/pkg/server/http"
"nunu-layout-admin/pkg/sid"
)
var repositorySet = wire.NewSet(
repository.NewDB,
//repository.NewRedis,
repository.NewRepository,
repository.NewTransaction,
repository.NewUserRepository,
repository.NewCasbinEnforcer,
repository.NewAdminRepository,
)
var serviceSet = wire.NewSet(
service.NewService,
service.NewUserService,
service.NewAdminService,
)
var handlerSet = wire.NewSet(
handler.NewHandler,
handler.NewUserHandler,
handler.NewAdminHandler,
)
var jobSet = wire.NewSet(
job.NewJob,
job.NewUserJob,
)
var serverSet = wire.NewSet(
server.NewHTTPServer,
server.NewJobServer,
)
// build App
func newApp(
httpServer *http.Server,
jobServer *server.JobServer,
// task *server.Task,
) *app.App {
return app.NewApp(
app.WithServer(httpServer, jobServer),
app.WithName("demo-server"),
)
}
func NewWire(*viper.Viper, *log.Logger) (*app.App, func(), error) {
panic(wire.Build(
repositorySet,
serviceSet,
handlerSet,
jobSet,
serverSet,
sid.NewSid,
jwt.NewJwt,
newApp,
))
}