- Create wire.go with interface bindings (biz interfaces → data implementations) - Rewrite main.go to use Kratos config loading + Wire-generated initApp - Remove temporary deps.go pinning file - Wire generates complete dependency graph: config → data → biz → service → server → app
64 lines
2.1 KiB
Go
64 lines
2.1 KiB
Go
// Code generated by Wire. DO NOT EDIT.
|
|
|
|
//go:generate go run -mod=mod github.com/google/wire/cmd/wire
|
|
//go:build !wireinject
|
|
// +build !wireinject
|
|
|
|
package main
|
|
|
|
import (
|
|
"github.com/go-kratos/kratos/v2"
|
|
"github.com/go-kratos/kratos/v2/log"
|
|
"github.com/go-kratos/kratos/v2/transport/grpc"
|
|
"github.com/go-kratos/kratos/v2/transport/http"
|
|
"rag/file-system/internal/biz"
|
|
"rag/file-system/internal/conf"
|
|
"rag/file-system/internal/data"
|
|
"rag/file-system/internal/server"
|
|
"rag/file-system/internal/service"
|
|
)
|
|
|
|
// Injectors from wire.go:
|
|
|
|
// initApp wires up the entire dependency graph.
|
|
func initApp(bootstrap *conf.Bootstrap, logger log.Logger) (*kratos.App, func(), error) {
|
|
confServer := newConfServer(bootstrap)
|
|
confData := newConfData(bootstrap)
|
|
fileRepo := data.NewFileRepo(confData)
|
|
fileUsecase := biz.NewFileUsecase(fileRepo, logger)
|
|
bucketUsecase := biz.NewBucketUsecase(fileRepo, logger)
|
|
dataData, cleanup, err := data.NewData(confData, logger)
|
|
if err != nil {
|
|
return nil, nil, err
|
|
}
|
|
folderRepo := data.NewFolderRepo(dataData, logger)
|
|
fileMetaRepo := data.NewFileMetaRepo(dataData, logger)
|
|
folderUsecase := biz.NewFolderUsecase(folderRepo, fileMetaRepo, fileRepo, logger)
|
|
shareRepo := data.NewShareRepo(dataData, logger)
|
|
shareUsecase := biz.NewShareUsecase(shareRepo, fileMetaRepo, fileRepo, logger)
|
|
fileService := service.NewFileService(fileUsecase, bucketUsecase, folderUsecase, shareUsecase, logger)
|
|
httpServer := server.NewHTTPServer(confServer, fileService, logger)
|
|
grpcServer := server.NewGRPCServer(confServer, fileService, logger)
|
|
app := newApp(logger, httpServer, grpcServer)
|
|
return app, func() {
|
|
cleanup()
|
|
}, nil
|
|
}
|
|
|
|
// wire.go:
|
|
|
|
// newApp creates a new Kratos application with HTTP and gRPC servers.
|
|
func newApp(logger log.Logger, hs *http.Server, gs *grpc.Server) *kratos.App {
|
|
return kratos.New(kratos.Name("file-system"), kratos.Logger(logger), kratos.Server(hs, gs))
|
|
}
|
|
|
|
// newConfServer extracts the Server config from Bootstrap.
|
|
func newConfServer(bc *conf.Bootstrap) *conf.Server {
|
|
return bc.GetServer()
|
|
}
|
|
|
|
// newConfData extracts the Data config from Bootstrap.
|
|
func newConfData(bc *conf.Bootstrap) *conf.Data {
|
|
return bc.GetData()
|
|
}
|