This is an automated email from the ASF dual-hosted git repository. shuai pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/answer.git
commit 9b65fed9f07809a781335797492a8b4187f93846 Author: Dinesht04 <[email protected]> AuthorDate: Tue Oct 14 22:13:00 2025 +0530 refactor(tags): remove redundant param from GetMinimumTags and apply minimum tag check in ObjectChangeTag --- internal/service/content/question_service.go | 10 +++++++--- internal/service/content/revision_service.go | 6 +++++- internal/service/tag_common/tag_common.go | 7 ++++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/internal/service/content/question_service.go b/internal/service/content/question_service.go index 39342313..cde81ce1 100644 --- a/internal/service/content/question_service.go +++ b/internal/service/content/question_service.go @@ -229,7 +229,7 @@ func (qs *QuestionService) AddQuestionCheckTags(ctx context.Context, Tags []*ent return []string{}, nil } func (qs *QuestionService) CheckAddQuestion(ctx context.Context, req *schema.QuestionAdd) (errorlist any, err error) { - minimumTags, err := qs.tagCommon.GetMinimumTags(ctx, req.Tags) + minimumTags, err := qs.tagCommon.GetMinimumTags(ctx) if err != nil { return } @@ -288,7 +288,7 @@ func (qs *QuestionService) HasNewTag(ctx context.Context, tags []*schema.TagItem // AddQuestion add question func (qs *QuestionService) AddQuestion(ctx context.Context, req *schema.QuestionAdd) (questionInfo any, err error) { - minimumTags, err := qs.tagCommon.GetMinimumTags(ctx, req.Tags) + minimumTags, err := qs.tagCommon.GetMinimumTags(ctx) if err != nil { return } @@ -1111,7 +1111,11 @@ func (qs *QuestionService) InviteUserInfo(ctx context.Context, questionID string } func (qs *QuestionService) ChangeTag(ctx context.Context, objectTagData *schema.TagChange) error { - return qs.tagCommon.ObjectChangeTag(ctx, objectTagData) + minimumTags, err := qs.tagCommon.GetMinimumTags(ctx) + if err != nil { + return err + } + return qs.tagCommon.ObjectChangeTag(ctx, objectTagData, minimumTags) } func (qs *QuestionService) CheckChangeReservedTag(ctx context.Context, oldobjectTagData, objectTagData []*entity.Tag) (bool, bool, []string, []string) { diff --git a/internal/service/content/revision_service.go b/internal/service/content/revision_service.go index effc012b..12ef7251 100644 --- a/internal/service/content/revision_service.go +++ b/internal/service/content/revision_service.go @@ -214,7 +214,11 @@ func (rs *RevisionService) revisionAuditQuestion(ctx context.Context, revisionit objectTagData := schema.TagChange{} objectTagData.ObjectID = question.ID objectTagData.Tags = objectTagTags - saveerr = rs.tagCommon.ObjectChangeTag(ctx, &objectTagData) + minimumTags, err := rs.tagCommon.GetMinimumTags(ctx) + if err != nil { + return err + } + saveerr = rs.tagCommon.ObjectChangeTag(ctx, &objectTagData, minimumTags) if saveerr != nil { return saveerr } diff --git a/internal/service/tag_common/tag_common.go b/internal/service/tag_common/tag_common.go index 58f16214..47bc1d26 100644 --- a/internal/service/tag_common/tag_common.go +++ b/internal/service/tag_common/tag_common.go @@ -292,7 +292,7 @@ func (ts *TagCommonService) ExistRecommend(ctx context.Context, tags []*schema.T return false, nil } -func (ts *TagCommonService) GetMinimumTags(ctx context.Context, tags []*schema.TagItem) (int, error) { +func (ts *TagCommonService) GetMinimumTags(ctx context.Context) (int, error) { siteInfo, err := ts.siteInfoService.GetSiteWrite(ctx) if err != nil { return 1, err @@ -657,8 +657,9 @@ func (ts *TagCommonService) CheckChangeReservedTag(ctx context.Context, oldobjec } // ObjectChangeTag change object tag list -func (ts *TagCommonService) ObjectChangeTag(ctx context.Context, objectTagData *schema.TagChange) (err error) { - if len(objectTagData.Tags) == 0 { +func (ts *TagCommonService) ObjectChangeTag(ctx context.Context, objectTagData *schema.TagChange, minimumTags int) (err error) { + //checks if the tags sent in the put req are less than the minimum, if so, tag changes are not applied + if len(objectTagData.Tags) < minimumTags { return nil }
