Skip to content

Commit 7902d19

Browse files
authored
Merge pull request #524 from chaitin/fix-mcp-upstream-delete
fix: 修复 mcp upstreams 删除问题
2 parents 9e0b43b + 68cc662 commit 7902d19

1 file changed

Lines changed: 26 additions & 1 deletion

File tree

  • backend/biz/setting/repo

backend/biz/setting/repo/mcp.go

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

2223
type 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

139164
func (r *mcpRepo) GetUserUpstream(ctx context.Context, uid, id uuid.UUID) (*domain.MCPUpstream, error) {

0 commit comments

Comments
 (0)