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 403dec5e39aac24551846490f011014a3f887335
Author: Dinesht04 <[email protected]>
AuthorDate: Thu Oct 16 03:40:03 2025 +0530

    feat(internal,ui): add minimum tags error and label while editing
---
 internal/service/content/question_service.go | 16 ++++++++--------
 internal/service/content/revision_service.go |  2 +-
 internal/service/tag_common/tag_common.go    | 24 +++++++++++++++++-------
 3 files changed, 26 insertions(+), 16 deletions(-)

diff --git a/internal/service/content/question_service.go 
b/internal/service/content/question_service.go
index cde81ce1..6832437d 100644
--- a/internal/service/content/question_service.go
+++ b/internal/service/content/question_service.go
@@ -239,7 +239,7 @@ func (qs *QuestionService) CheckAddQuestion(ctx 
context.Context, req *schema.Que
                        ErrorField: "tags",
                        ErrorMsg:   translator.Tr(handler.GetLangByCtx(ctx), 
reason.TagMinCount),
                })
-               err = errors.BadRequest(reason.RecommendTagEnter)
+               err = errors.BadRequest(reason.TagMinCount)
                return errorlist, err
        }
        recommendExist, err := qs.tagCommon.ExistRecommend(ctx, req.Tags)
@@ -298,7 +298,7 @@ func (qs *QuestionService) AddQuestion(ctx context.Context, 
req *schema.Question
                        ErrorField: "tags",
                        ErrorMsg:   translator.Tr(handler.GetLangByCtx(ctx), 
reason.TagMinCount),
                })
-               err = errors.BadRequest(reason.RecommendTagEnter)
+               err = errors.BadRequest(reason.TagMinCount)
                return errorlist, err
        }
        recommendExist, err := qs.tagCommon.ExistRecommend(ctx, req.Tags)
@@ -378,9 +378,9 @@ func (qs *QuestionService) AddQuestion(ctx context.Context, 
req *schema.Question
        objectTagData.ObjectID = question.ID
        objectTagData.Tags = req.Tags
        objectTagData.UserID = req.UserID
-       err = qs.ChangeTag(ctx, &objectTagData)
+       errorlist, err := qs.ChangeTag(ctx, &objectTagData)
        if err != nil {
-               return
+               return errorlist, err
        }
        _ = qs.questionRepo.UpdateSearch(ctx, question.ID)
 
@@ -1008,9 +1008,9 @@ func (qs *QuestionService) UpdateQuestion(ctx 
context.Context, req *schema.Quest
                objectTagData.ObjectID = question.ID
                objectTagData.Tags = req.Tags
                objectTagData.UserID = req.UserID
-               tagerr := qs.ChangeTag(ctx, &objectTagData)
+               errorlist, tagerr := qs.ChangeTag(ctx, &objectTagData)
                if tagerr != nil {
-                       return questionInfo, tagerr
+                       return errorlist, tagerr
                }
        }
 
@@ -1110,10 +1110,10 @@ func (qs *QuestionService) InviteUserInfo(ctx 
context.Context, questionID string
        return qs.questioncommon.InviteUserInfo(ctx, questionID)
 }
 
-func (qs *QuestionService) ChangeTag(ctx context.Context, objectTagData 
*schema.TagChange) error {
+func (qs *QuestionService) ChangeTag(ctx context.Context, objectTagData 
*schema.TagChange) (errorlist []*validator.FormErrorField, err error) {
        minimumTags, err := qs.tagCommon.GetMinimumTags(ctx)
        if err != nil {
-               return err
+               return nil, err
        }
        return qs.tagCommon.ObjectChangeTag(ctx, objectTagData, minimumTags)
 }
diff --git a/internal/service/content/revision_service.go 
b/internal/service/content/revision_service.go
index 12ef7251..1aed4cf8 100644
--- a/internal/service/content/revision_service.go
+++ b/internal/service/content/revision_service.go
@@ -218,7 +218,7 @@ func (rs *RevisionService) revisionAuditQuestion(ctx 
context.Context, revisionit
                if err != nil {
                        return err
                }
-               saveerr = rs.tagCommon.ObjectChangeTag(ctx, &objectTagData, 
minimumTags)
+               _, 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 47bc1d26..fed5dfbf 100644
--- a/internal/service/tag_common/tag_common.go
+++ b/internal/service/tag_common/tag_common.go
@@ -27,7 +27,9 @@ import (
        "strings"
 
        "github.com/apache/answer/internal/base/constant"
+       "github.com/apache/answer/internal/base/handler"
        "github.com/apache/answer/internal/base/reason"
+       "github.com/apache/answer/internal/base/translator"
        "github.com/apache/answer/internal/base/validator"
        "github.com/apache/answer/internal/entity"
        "github.com/apache/answer/internal/schema"
@@ -657,10 +659,18 @@ func (ts *TagCommonService) CheckChangeReservedTag(ctx 
context.Context, oldobjec
 }
 
 // ObjectChangeTag change object tag list
-func (ts *TagCommonService) ObjectChangeTag(ctx context.Context, objectTagData 
*schema.TagChange, minimumTags int) (err error) {
+func (ts *TagCommonService) ObjectChangeTag(ctx context.Context, objectTagData 
*schema.TagChange, minimumTags int) (errorlist []*validator.FormErrorField, 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
+
+               errorlist := make([]*validator.FormErrorField, 0)
+               errorlist = append(errorlist, &validator.FormErrorField{
+                       ErrorField: "tags",
+                       ErrorMsg:   translator.Tr(handler.GetLangByCtx(ctx), 
reason.TagMinCount),
+               })
+
+               err = errors.BadRequest(reason.TagMinCount)
+               return errorlist, err
        }
 
        thisObjTagNameList := make([]string, 0)
@@ -673,7 +683,7 @@ func (ts *TagCommonService) ObjectChangeTag(ctx 
context.Context, objectTagData *
        // find tags name
        tagListInDb, err := ts.tagCommonRepo.GetTagListByNames(ctx, 
thisObjTagNameList)
        if err != nil {
-               return err
+               return nil, err
        }
 
        tagInDbMapping := make(map[string]*entity.Tag)
@@ -701,7 +711,7 @@ func (ts *TagCommonService) ObjectChangeTag(ctx 
context.Context, objectTagData *
        if len(addTagList) > 0 {
                err = ts.tagCommonRepo.AddTagList(ctx, addTagList)
                if err != nil {
-                       return err
+                       return nil, err
                }
                for _, tag := range addTagList {
                        thisObjTagIDList = append(thisObjTagIDList, tag.ID)
@@ -714,7 +724,7 @@ func (ts *TagCommonService) ObjectChangeTag(ctx 
context.Context, objectTagData *
                        revisionDTO.Content = string(tagInfoJson)
                        revisionID, err := ts.revisionService.AddRevision(ctx, 
revisionDTO, true)
                        if err != nil {
-                               return err
+                               return nil, err
                        }
                        ts.activityQueueService.Send(ctx, &schema.ActivityMsg{
                                UserID:           objectTagData.UserID,
@@ -728,9 +738,9 @@ func (ts *TagCommonService) ObjectChangeTag(ctx 
context.Context, objectTagData *
 
        err = ts.CreateOrUpdateTagRelList(ctx, objectTagData.ObjectID, 
thisObjTagIDList)
        if err != nil {
-               return err
+               return nil, err
        }
-       return nil
+       return nil, nil
 }
 
 func (ts *TagCommonService) CountTagRelByTagID(ctx context.Context, tagID 
string) (count int64, err error) {

Reply via email to