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 (

Reply via email to