diff --git a/internal/controller_backyard/siteinfo_controller.go b/internal/controller_backyard/siteinfo_controller.go index 157b694d..8aeb2faa 100644 --- a/internal/controller_backyard/siteinfo_controller.go +++ b/internal/controller_backyard/siteinfo_controller.go @@ -142,8 +142,8 @@ func (sc *SiteInfoController) UpdateSiteWrite(ctx *gin.Context) { } req.UserID = middleware.GetLoginUserIDFromContext(ctx) - err := sc.siteInfoService.SaveSiteWrite(ctx, req) - handler.HandleResponse(ctx, err, nil) + resp, err := sc.siteInfoService.SaveSiteWrite(ctx, req) + handler.HandleResponse(ctx, err, resp) } // GetSMTPConfig get smtp config diff --git a/internal/service/siteinfo/siteinfo_service.go b/internal/service/siteinfo/siteinfo_service.go index 672c9d6f..3980a6e2 100644 --- a/internal/service/siteinfo/siteinfo_service.go +++ b/internal/service/siteinfo/siteinfo_service.go @@ -7,6 +7,7 @@ import ( "github.com/answerdev/answer/internal/base/constant" "github.com/answerdev/answer/internal/base/reason" "github.com/answerdev/answer/internal/base/translator" + "github.com/answerdev/answer/internal/base/validator" "github.com/answerdev/answer/internal/entity" "github.com/answerdev/answer/internal/schema" "github.com/answerdev/answer/internal/service/export" @@ -164,15 +165,27 @@ func (s *SiteInfoService) SaveSiteBranding(ctx context.Context, req *schema.Site } // SaveSiteWrite save site configuration about write -func (s *SiteInfoService) SaveSiteWrite(ctx context.Context, req *schema.SiteWriteReq) (err error) { - err = s.tagCommonService.SetSiteWriteRecommendTag(ctx, req.RecommendTags, req.RequiredTag, req.UserID) +func (s *SiteInfoService) SaveSiteWrite(ctx context.Context, req *schema.SiteWriteReq) (resp interface{}, err error) { + errData, err := s.tagCommonService.SetSiteWriteRecommendTag(ctx, req.RecommendTags, req.RequiredTag, req.UserID) if err != nil { - return err + if len(errData) > 0 { + resp = &validator.ErrorField{ + Key: "recommend_tags", + Value: errData, + } + } + return resp, err } - err = s.tagCommonService.SetSiteWriteReservedTag(ctx, req.ReservedTags, req.UserID) + errData, err = s.tagCommonService.SetSiteWriteReservedTag(ctx, req.ReservedTags, req.UserID) if err != nil { - return err + if len(errData) > 0 { + resp = &validator.ErrorField{ + Key: "reserved_tags", + Value: errData, + } + } + return resp, err } content, _ := json.Marshal(req) @@ -181,7 +194,7 @@ func (s *SiteInfoService) SaveSiteWrite(ctx context.Context, req *schema.SiteWri Content: string(content), Status: 1, } - return s.siteInfoRepo.SaveByType(ctx, constant.SiteTypeWrite, data) + return nil, s.siteInfoRepo.SaveByType(ctx, constant.SiteTypeWrite, data) } // GetSMTPConfig get smtp config