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) {
