This is an automated email from the ASF dual-hosted git repository. linkinstar pushed a commit to branch dev in repository https://gitbox.apache.org/repos/asf/incubator-answer.git
commit 73c7a22900834db26684b8b6060272da9b9c81ee Author: Anan <[email protected]> AuthorDate: Wed Oct 16 01:57:58 2024 +0000 Fix importer --- cmd/wire_gen.go | 2 +- internal/service/importer/importer_service.go | 40 ++++++++-------------- .../service/plugin_common/plugin_common_service.go | 1 - plugin/importer.go | 2 +- 4 files changed, 17 insertions(+), 28 deletions(-) diff --git a/cmd/wire_gen.go b/cmd/wire_gen.go index 1ffa75ca..29e0a441 100644 --- a/cmd/wire_gen.go +++ b/cmd/wire_gen.go @@ -79,6 +79,7 @@ import ( "github.com/apache/incubator-answer/internal/service/collection_common" comment2 "github.com/apache/incubator-answer/internal/service/comment" "github.com/apache/incubator-answer/internal/service/comment_common" + "github.com/apache/incubator-answer/internal/service/importer" config2 "github.com/apache/incubator-answer/internal/service/config" "github.com/apache/incubator-answer/internal/service/content" "github.com/apache/incubator-answer/internal/service/dashboard" @@ -111,7 +112,6 @@ import ( "github.com/apache/incubator-answer/internal/service/user_common" user_external_login2 "github.com/apache/incubator-answer/internal/service/user_external_login" user_notification_config2 "github.com/apache/incubator-answer/internal/service/user_notification_config" - "github.com/apache/incubator-answer/internal/service/importer" "github.com/segmentfault/pacman" "github.com/segmentfault/pacman/log" ) diff --git a/internal/service/importer/importer_service.go b/internal/service/importer/importer_service.go index 668a2bf9..d775ee76 100644 --- a/internal/service/importer/importer_service.go +++ b/internal/service/importer/importer_service.go @@ -21,7 +21,6 @@ package importer import ( "context" - "fmt" "github.com/apache/incubator-answer/internal/base/handler" "github.com/apache/incubator-answer/internal/base/reason" @@ -61,27 +60,19 @@ type ImporterFunc struct { importerService *ImporterService } -func (ipfunc *ImporterFunc) AddQuestion(ctx context.Context, questionInfo plugin.QuestionImporterInfo) { - println("Hello, World123!") - ipfunc.importerService.AddQuestion123(ctx, questionInfo) +func (ipfunc *ImporterFunc) AddQuestion(ctx context.Context, questionInfo plugin.QuestionImporterInfo) (err error) { + ipfunc.importerService.ImportQuestion(ctx, questionInfo) + return nil } func (ip *ImporterService) NewImporterFunc() plugin.ImporterFunc { return &ImporterFunc{importerService: ip} } -func (ip *ImporterService) AddQuestion123(ctx context.Context, questionInfo plugin.QuestionImporterInfo) { - fmt.Println("Call from func (ip *ImporterService) AddQuestion123(*****)") - // body, err := io.ReadAll(ctx.Request.Body) - // ctx.Request.Body = io.NopCloser(bytes.NewBuffer(body)) - fmt.Println("ImportPush") - - // if err != nil { - // log.Errorf("error: %v", err) - // return - // } +func (ip *ImporterService) ImportQuestion(ctx context.Context, questionInfo plugin.QuestionImporterInfo) (err error) { req := &schema.QuestionAdd{} errFields := make([]*validator.FormErrorField, 0) + // To limit rate, remove the following code from comment: Part 1/2 // reject, rejectKey := ipc.rateLimitMiddleware.DuplicateRequestRejection(ctx, req) // if reject { // return @@ -89,13 +80,14 @@ func (ip *ImporterService) AddQuestion123(ctx context.Context, questionInfo plug user_info, exist, err := ip.userCommon.GetByEmail(ctx, questionInfo.UserEmail) if err != nil { log.Errorf("error: %v", err) - return + return err } if !exist { log.Errorf("error: User Email not found") - return + return err } + // To limit rate, remove the following code from comment: Part 2/2 // defer func() { // // If status is not 200 means that the bad request has been returned, so the record should be cleared // if ctx.Writer.Status() != http.StatusOK { @@ -125,7 +117,7 @@ func (ip *ImporterService) AddQuestion123(ctx context.Context, questionInfo plug }) if err != nil { log.Errorf("error: %v", err) - return + return err } req.CanAdd = canList[0] req.CanEdit = canList[1] @@ -136,18 +128,18 @@ func (ip *ImporterService) AddQuestion123(ctx context.Context, questionInfo plug req.CanAddTag = canList[6] if !req.CanAdd { log.Errorf("error: %v", err) - return + return err } hasNewTag, err := ip.questionService.HasNewTag(ctx.(*gin.Context), req.Tags) if err != nil { log.Errorf("error: %v", err) - return + return err } if !req.CanAddTag && hasNewTag { lang := handler.GetLang(ctx.(*gin.Context)) msg := translator.TrWithData(lang, reason.NoEnoughRankToOperate, &schema.PermissionTrTplData{Rank: requireRanks[6]}) log.Errorf("error: %v", msg) - return + return errors.BadRequest(msg) } errList, err := ip.questionService.CheckAddQuestion(ctx, req) @@ -158,9 +150,7 @@ func (ip *ImporterService) AddQuestion123(ctx context.Context, questionInfo plug } } if len(errFields) > 0 { - handler.HandleResponse(ctx.(*gin.Context), errors.BadRequest(reason.RequestFormatError), errFields) - log.Errorf("error: RequestFormat Error") - return + return errors.BadRequest(reason.RequestFormatError) } ginCtx := ctx.(*gin.Context) req.UserAgent = ginCtx.GetHeader("User-Agent") @@ -172,10 +162,10 @@ func (ip *ImporterService) AddQuestion123(ctx context.Context, questionInfo plug errFields = append(errFields, errlist...) } } - if len(errFields) > 0 { log.Errorf("error: RequestFormatError") - return + return errors.BadRequest(reason.RequestFormatError) } log.Info("Add Question Successfully") + return nil } diff --git a/internal/service/plugin_common/plugin_common_service.go b/internal/service/plugin_common/plugin_common_service.go index 4f7cb30a..920a8a03 100644 --- a/internal/service/plugin_common/plugin_common_service.go +++ b/internal/service/plugin_common/plugin_common_service.go @@ -105,7 +105,6 @@ func (ps *PluginCommonService) UpdatePluginConfig(ctx context.Context, req *sche return nil }) _ = plugin.CallImporter(func(importer plugin.Importer) error { - fmt.Println("更新时注册Importer") importer.RegisterImporterFunc(ctx, ps.importerService.NewImporterFunc()) return nil }) diff --git a/plugin/importer.go b/plugin/importer.go index 4c25d72b..3893d54a 100644 --- a/plugin/importer.go +++ b/plugin/importer.go @@ -36,7 +36,7 @@ type Importer interface { } type ImporterFunc interface { - AddQuestion(ctx context.Context, questionInfo QuestionImporterInfo) + AddQuestion(ctx context.Context, questionInfo QuestionImporterInfo) (err error) } var (
