feat: save site write config return form error when tag not found

This commit is contained in:
LinkinStar 2022-11-16 10:38:15 +08:00
parent 67b7e7d2b1
commit 59fb67c651
2 changed files with 21 additions and 8 deletions

View File

@ -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

View File

@ -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