@@ -17,6 +17,7 @@ import (
1717 "github.com/chaitin/MonkeyCode/backend/domain"
1818 "github.com/chaitin/MonkeyCode/backend/errcode"
1919 "github.com/chaitin/MonkeyCode/backend/pkg/cvt"
20+ "github.com/chaitin/MonkeyCode/backend/pkg/entx"
2021)
2122
2223type mcpRepo struct {
@@ -133,7 +134,31 @@ func (r *mcpRepo) DeleteUserUpstream(ctx context.Context, uid, id uuid.UUID) err
133134 if err != nil {
134135 return err
135136 }
136- return r .db .MCPUpstream .DeleteOneID (row .ID ).Exec (ctx )
137+ return entx .WithTx2 (ctx , r .db , func (tx * db.Tx ) error {
138+ tools , err := tx .MCPTool .Query ().
139+ Where (mcptool .UserID (uid )).
140+ Where (mcptool .UpstreamID (id )).
141+ All (ctx )
142+ if err != nil {
143+ return err
144+ }
145+ toolIds := cvt .Iter (tools , func (_ int , t * db.MCPTool ) uuid.UUID { return t .ID })
146+ if _ , err := tx .MCPTool .Delete ().
147+ Where (mcptool .IDIn (toolIds ... )).
148+ Exec (ctx ); err != nil {
149+ return err
150+ }
151+ if _ , err := tx .MCPUserToolSetting .Delete ().
152+ Where (mcpusertoolsetting .ToolIDIn (toolIds ... )).
153+ Exec (ctx ); err != nil {
154+ return err
155+ }
156+ _ , err = tx .MCPUpstream .Delete ().
157+ Where (mcpupstream .UserID (uid )).
158+ Where (mcpupstream .ID (row .ID )).
159+ Exec (ctx )
160+ return err
161+ })
137162}
138163
139164func (r * mcpRepo ) GetUserUpstream (ctx context.Context , uid , id uuid.UUID ) (* domain.MCPUpstream , error ) {
0 commit comments