From f19761fa31fed69290d21ecabe34f1265a785b3d Mon Sep 17 00:00:00 2001 From: Ryo Date: Mon, 25 Aug 2025 20:22:45 +0800 Subject: [PATCH] fix(agent): disallow update if prompt is empty (#1802) --- .../singleagent/internal/dal/single_agent_draft.go | 12 ++++++++++++ .../agent/singleagent/repository/repository.go | 1 + .../agent/singleagent/service/single_agent_impl.go | 2 +- backend/domain/knowledge/service/retrieve_test.go | 9 +++++---- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/backend/domain/agent/singleagent/internal/dal/single_agent_draft.go b/backend/domain/agent/singleagent/internal/dal/single_agent_draft.go index c4e0dfc3..90b03265 100644 --- a/backend/domain/agent/singleagent/internal/dal/single_agent_draft.go +++ b/backend/domain/agent/singleagent/internal/dal/single_agent_draft.go @@ -102,6 +102,18 @@ func (sa *SingleAgentDraftDAO) MGet(ctx context.Context, agentIDs []int64) ([]*e return dos, nil } +func (sa *SingleAgentDraftDAO) Save(ctx context.Context, agentInfo *entity.SingleAgent) (err error) { + po := sa.singleAgentDraftDo2Po(agentInfo) + singleAgentDAOModel := sa.dbQuery.SingleAgentDraft + + err = singleAgentDAOModel.WithContext(ctx).Where(singleAgentDAOModel.AgentID.Eq(agentInfo.AgentID)).Save(po) + if err != nil { + return errorx.WrapByCode(err, errno.ErrAgentUpdateCode) + } + + return nil +} + func (sa *SingleAgentDraftDAO) Update(ctx context.Context, agentInfo *entity.SingleAgent) (err error) { po := sa.singleAgentDraftDo2Po(agentInfo) singleAgentDAOModel := sa.dbQuery.SingleAgentDraft diff --git a/backend/domain/agent/singleagent/repository/repository.go b/backend/domain/agent/singleagent/repository/repository.go index ea87b6c6..245a6f3d 100644 --- a/backend/domain/agent/singleagent/repository/repository.go +++ b/backend/domain/agent/singleagent/repository/repository.go @@ -46,6 +46,7 @@ type SingleAgentDraftRepo interface { MGet(ctx context.Context, agentIDs []int64) ([]*entity.SingleAgent, error) Delete(ctx context.Context, spaceID, agentID int64) (err error) Update(ctx context.Context, agentInfo *entity.SingleAgent) (err error) + Save(ctx context.Context, agentInfo *entity.SingleAgent) (err error) GetDisplayInfo(ctx context.Context, userID, agentID int64) (*entity.AgentDraftDisplayInfo, error) UpdateDisplayInfo(ctx context.Context, userID int64, e *entity.AgentDraftDisplayInfo) error diff --git a/backend/domain/agent/singleagent/service/single_agent_impl.go b/backend/domain/agent/singleagent/service/single_agent_impl.go index 0f99c7bf..0f98b03b 100644 --- a/backend/domain/agent/singleagent/service/single_agent_impl.go +++ b/backend/domain/agent/singleagent/service/single_agent_impl.go @@ -153,7 +153,7 @@ func (s *singleAgentImpl) UpdateSingleAgentDraft(ctx context.Context, agentInfo } } - return s.AgentDraftRepo.Update(ctx, agentInfo) + return s.AgentDraftRepo.Save(ctx, agentInfo) } func (s *singleAgentImpl) CreateSingleAgentDraftWithID(ctx context.Context, creatorID, agentID int64, draft *entity.SingleAgent) (int64, error) { diff --git a/backend/domain/knowledge/service/retrieve_test.go b/backend/domain/knowledge/service/retrieve_test.go index 8166e0b2..008edc9f 100644 --- a/backend/domain/knowledge/service/retrieve_test.go +++ b/backend/domain/knowledge/service/retrieve_test.go @@ -24,6 +24,11 @@ import ( "testing" "github.com/cloudwego/eino/schema" + "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" + "gorm.io/driver/mysql" + "gorm.io/gorm" + "github.com/coze-dev/coze-studio/backend/domain/knowledge/entity" "github.com/coze-dev/coze-studio/backend/domain/knowledge/internal/dal/model" "github.com/coze-dev/coze-studio/backend/domain/knowledge/repository" @@ -35,10 +40,6 @@ import ( mock_db "github.com/coze-dev/coze-studio/backend/internal/mock/infra/contract/rdb" "github.com/coze-dev/coze-studio/backend/pkg/lang/ptr" "github.com/coze-dev/coze-studio/backend/pkg/lang/sets" - "github.com/stretchr/testify/assert" - "go.uber.org/mock/gomock" - "gorm.io/driver/mysql" - "gorm.io/gorm" ) func TestAddSliceIdColumn(t *testing.T) {