Files
MonkeyCode/backend/internal/provider.go
2025-08-19 14:34:01 +08:00

109 lines
4.6 KiB
Go

package internal
import (
"github.com/google/wire"
billingv1 "github.com/chaitin/MonkeyCode/backend/internal/billing/handler/http/v1"
billingrepo "github.com/chaitin/MonkeyCode/backend/internal/billing/repo"
billingusecase "github.com/chaitin/MonkeyCode/backend/internal/billing/usecase"
codesnippetv1 "github.com/chaitin/MonkeyCode/backend/internal/codesnippet/handler/http/v1"
codesnippetrepo "github.com/chaitin/MonkeyCode/backend/internal/codesnippet/repo"
codesnippetservice "github.com/chaitin/MonkeyCode/backend/internal/codesnippet/service"
codesnippetusecase "github.com/chaitin/MonkeyCode/backend/internal/codesnippet/usecase"
dashv1 "github.com/chaitin/MonkeyCode/backend/internal/dashboard/handler/v1"
dashrepo "github.com/chaitin/MonkeyCode/backend/internal/dashboard/repo"
dashusecase "github.com/chaitin/MonkeyCode/backend/internal/dashboard/usecase"
erepo "github.com/chaitin/MonkeyCode/backend/internal/extension/repo"
eusecase "github.com/chaitin/MonkeyCode/backend/internal/extension/usecase"
"github.com/chaitin/MonkeyCode/backend/internal/middleware"
modelv1 "github.com/chaitin/MonkeyCode/backend/internal/model/handler/http/v1"
modelrepo "github.com/chaitin/MonkeyCode/backend/internal/model/repo"
modelusecase "github.com/chaitin/MonkeyCode/backend/internal/model/usecase"
v1 "github.com/chaitin/MonkeyCode/backend/internal/openai/handler/v1"
openairepo "github.com/chaitin/MonkeyCode/backend/internal/openai/repo"
openai "github.com/chaitin/MonkeyCode/backend/internal/openai/usecase"
"github.com/chaitin/MonkeyCode/backend/internal/proxy"
proxyrepo "github.com/chaitin/MonkeyCode/backend/internal/proxy/repo"
proxyusecase "github.com/chaitin/MonkeyCode/backend/internal/proxy/usecase"
reportrepo "github.com/chaitin/MonkeyCode/backend/internal/report/repo"
reportuse "github.com/chaitin/MonkeyCode/backend/internal/report/usecase"
securityv1 "github.com/chaitin/MonkeyCode/backend/internal/security/handler/http/v1"
securityrepo "github.com/chaitin/MonkeyCode/backend/internal/security/repo"
securityusecase "github.com/chaitin/MonkeyCode/backend/internal/security/usecase"
sockethandler "github.com/chaitin/MonkeyCode/backend/internal/socket/handler"
userV1 "github.com/chaitin/MonkeyCode/backend/internal/user/handler/v1"
userrepo "github.com/chaitin/MonkeyCode/backend/internal/user/repo"
userusecase "github.com/chaitin/MonkeyCode/backend/internal/user/usecase"
workspacehandlerv1 "github.com/chaitin/MonkeyCode/backend/internal/workspace/handler/http/v1"
workspacerepo "github.com/chaitin/MonkeyCode/backend/internal/workspace/repo"
workspaceusecase "github.com/chaitin/MonkeyCode/backend/internal/workspace/usecase"
)
// NewAPIHandlers 创建 APIHandlers 实例
func NewAPIHandlers(
openaiV1 *v1.V1Handler,
userV1 *userV1.UserHandler,
modelV1 *modelv1.ModelHandler,
dashboardV1 *dashv1.DashboardHandler,
codeSnippetV1 *codesnippetv1.CodeSnippetHandler,
socketH *sockethandler.SocketHandler,
billingV1 *billingv1.BillingHandler,
workspaceFileV1 *workspacehandlerv1.WorkspaceFileHandler,
securityV1 *securityv1.SecurityHandler,
) *APIHandlers {
return &APIHandlers{
OpenAIV1Handler: openaiV1,
UserHandler: userV1,
ModelHandler: modelV1,
DashboardHandler: dashboardV1,
CodeSnippetHandler: codeSnippetV1,
SocketHandler: socketH,
BillingHandler: billingV1,
WorkspaceFileHandler: workspaceFileV1,
SecurityHandler: securityV1,
}
}
var Provider = wire.NewSet(
proxy.NewLLMProxy,
v1.NewV1Handler,
openai.NewOpenAIUsecase,
openairepo.NewOpenAIRepo,
modelv1.NewModelHandler,
proxyusecase.NewProxyUsecase,
proxyrepo.NewProxyRepo,
modelusecase.NewModelUsecase,
modelrepo.NewModelRepo,
dashv1.NewDashboardHandler,
dashusecase.NewDashboardUsecase,
dashrepo.NewDashboardRepo,
middleware.NewProxyMiddleware,
middleware.NewAuthMiddleware,
middleware.NewActiveMiddleware,
middleware.NewReadOnlyMiddleware,
userV1.NewUserHandler,
userrepo.NewUserRepo,
userusecase.NewUserUsecase,
billingv1.NewBillingHandler,
billingrepo.NewBillingRepo,
billingusecase.NewBillingUsecase,
erepo.NewExtensionRepo,
eusecase.NewExtensionUsecase,
workspacerepo.NewWorkspaceRepo,
workspacerepo.NewWorkspaceFileRepo,
workspaceusecase.NewWorkspaceUsecase,
workspaceusecase.NewWorkspaceFileUsecase,
workspacehandlerv1.NewWorkspaceFileHandler,
sockethandler.NewSocketHandler,
reportuse.NewReportUsecase,
reportrepo.NewReportRepo,
codesnippetrepo.NewCodeSnippetRepo,
codesnippetusecase.NewCodeSnippetUsecase,
codesnippetv1.NewCodeSnippetHandler,
NewAPIHandlers,
securityrepo.NewSecurityScanningRepo,
securityusecase.NewSecurityScanningUsecase,
securityv1.NewSecurityHandler,
codesnippetservice.NewOpenAIEmbeddingService,
)