122 lines
2.9 KiB
Go
122 lines
2.9 KiB
Go
//go:build wireinject
|
|
// +build wireinject
|
|
|
|
package wire
|
|
|
|
import (
|
|
"context"
|
|
"opencatd-open/internal/controller"
|
|
proxy "opencatd-open/internal/controller/proxy"
|
|
team_controller "opencatd-open/internal/controller/team"
|
|
"opencatd-open/internal/dao"
|
|
"opencatd-open/pkg/config"
|
|
"sync"
|
|
|
|
service "opencatd-open/internal/service"
|
|
teamService "opencatd-open/internal/service/team"
|
|
|
|
"github.com/google/wire"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// 定义 provider set
|
|
var userSet = wire.NewSet(
|
|
dao.NewUserDAO,
|
|
wire.Bind(new(dao.UserRepository), new(*dao.UserDAO)),
|
|
teamService.NewUserService,
|
|
)
|
|
|
|
var keySet = wire.NewSet(
|
|
dao.NewApiKeyDAO,
|
|
wire.Bind(new(dao.ApiKeyRepository), new(*dao.ApiKeyDAO)),
|
|
teamService.NewApiKeyService,
|
|
)
|
|
|
|
var tokenSet = wire.NewSet(
|
|
dao.NewTokenDAO,
|
|
wire.Bind(new(dao.TokenRepository), new(*dao.TokenDAO)),
|
|
teamService.NewTokenService,
|
|
)
|
|
|
|
var usageSet = wire.NewSet(
|
|
dao.NewUsageDAO,
|
|
wire.Bind(new(dao.UsageRepository), new(*dao.UsageDAO)),
|
|
dao.NewDailyUsageDAO,
|
|
wire.Bind(new(dao.DailyUsageRepository), new(*dao.DailyUsageDAO)),
|
|
teamService.NewUsageService,
|
|
)
|
|
|
|
// 初始化 TeamHandler
|
|
func InitTeamHandler(ctx context.Context, cfg *config.Config, db *gorm.DB) (*team_controller.Team, error) {
|
|
wire.Build(userSet, keySet, tokenSet, usageSet, team_controller.NewTeam)
|
|
return nil, nil
|
|
}
|
|
|
|
// var userApi = wire.NewSet(
|
|
// dao.NewUserDAO,
|
|
// wire.Bind(new(dao.UserRepository), new(*dao.UserDAO)),
|
|
// service.NewUserService,
|
|
// )
|
|
|
|
// var keyApi = wire.NewSet(
|
|
// dao.NewApiKeyDAO,
|
|
// wire.Bind(new(dao.ApiKeyRepository), new(*dao.ApiKeyDAO)),
|
|
// service.NewApiKeyService,
|
|
// )
|
|
|
|
// var tokenApi = wire.NewSet(
|
|
// dao.NewTokenDAO,
|
|
// wire.Bind(new(dao.TokenRepository), new(*dao.TokenDAO)),
|
|
// service.NewTokenService,
|
|
// )
|
|
|
|
// func InitAPIHandler(ctx context.Context, db *gorm.DB) (*controller.Api, error) {
|
|
// wire.Build(userApi, keyApi, tokenApi, controller.NewApi)
|
|
// return nil, nil
|
|
// }
|
|
|
|
var repositorySet = wire.NewSet(
|
|
dao.NewUserDAO,
|
|
wire.Bind(new(dao.UserRepository), new(*dao.UserDAO)),
|
|
dao.NewTokenDAO,
|
|
wire.Bind(new(dao.TokenRepository), new(*dao.TokenDAO)),
|
|
dao.NewApiKeyDAO,
|
|
wire.Bind(new(dao.ApiKeyRepository), new(*dao.ApiKeyDAO)),
|
|
|
|
dao.NewUsageDAO,
|
|
wire.Bind(new(dao.UsageRepository), new(*dao.UsageDAO)),
|
|
dao.NewDailyUsageDAO,
|
|
wire.Bind(new(dao.DailyUsageRepository), new(*dao.DailyUsageDAO)),
|
|
)
|
|
|
|
var serviceSet = wire.NewSet(
|
|
service.NewUserService,
|
|
service.NewTokenService,
|
|
service.NewApiKeyService,
|
|
service.NewWebAuthnService,
|
|
|
|
service.NewUsageService,
|
|
)
|
|
|
|
func InitAPIHandler(ctx context.Context, cfg *config.Config, db *gorm.DB) (*controller.Api, error) {
|
|
wire.Build(
|
|
repositorySet,
|
|
serviceSet,
|
|
controller.NewApi,
|
|
)
|
|
return nil, nil
|
|
}
|
|
|
|
var proxySet = wire.NewSet(
|
|
dao.NewUserDAO,
|
|
dao.NewApiKeyDAO,
|
|
dao.NewTokenDAO,
|
|
dao.NewUsageDAO,
|
|
dao.NewDailyUsageDAO,
|
|
)
|
|
|
|
func InitProxyHandler(ctx context.Context, cfg *config.Config, db *gorm.DB, wg *sync.WaitGroup) (*proxy.Proxy, error) {
|
|
wire.Build(proxySet, proxy.NewProxy)
|
|
return nil, nil
|
|
}
|