You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@answer.apache.org by sh...@apache.org on 2025/10/16 01:46:19 UTC

(answer) 05/06: refactor(tags): remove redundant param from GetMinimumTags and apply minimum tag check in ObjectChangeTag

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 <di...@gmail.com>
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
 	}