Skip to content

Commit 58a4684

Browse files
committed
fix:multiple JSON return errors and optimize program structure"
1 parent 5e29151 commit 58a4684

2 files changed

Lines changed: 24 additions & 20 deletions

File tree

internal/dms/biz/cloudbeaver.go

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,14 @@ import (
1414
"strings"
1515
"sync"
1616

17+
"github.com/99designs/gqlgen/graphql"
18+
"github.com/99designs/gqlgen/graphql/executor"
1719
"github.com/actiontech/dms/internal/dms/pkg/constant"
1820
"github.com/actiontech/dms/internal/pkg/cloudbeaver"
1921
"github.com/actiontech/dms/internal/pkg/cloudbeaver/model"
2022
"github.com/actiontech/dms/internal/pkg/cloudbeaver/resolver"
21-
2223
"github.com/actiontech/dms/pkg/dms-common/api/jwt"
2324
"github.com/actiontech/dms/pkg/dms-common/pkg/aes"
24-
25-
"github.com/99designs/gqlgen/graphql"
26-
"github.com/99designs/gqlgen/graphql/executor"
2725
utilLog "github.com/actiontech/dms/pkg/dms-common/pkg/log"
2826
"github.com/labstack/echo/v4"
2927
)
@@ -334,19 +332,13 @@ func (cu *CloudbeaverUsecase) GraphQLDistributor() echo.MiddlewareFunc {
334332
ctx := graphql.StartOperationTrace(context.Background())
335333

336334
var dbService *DBService
337-
var taskID *string
338335
if params.OperationName == "asyncSqlExecuteQuery" {
339336
dbService, err = cu.getDbService(c.Request().Context(), params)
340337
if err != nil {
341338
cu.log.Error(err)
342339
return err
343340
}
344341

345-
taskID, err = cu.SaveCbOpLog(c, dbService, params, next)
346-
if err != nil {
347-
return err
348-
}
349-
350342
if !cu.isEnableSQLAudit(dbService) {
351343
cloudbeaverResBuf := new(bytes.Buffer)
352344
mw := io.MultiWriter(c.Response().Writer, cloudbeaverResBuf)
@@ -482,9 +474,14 @@ func (cu *CloudbeaverUsecase) GraphQLDistributor() echo.MiddlewareFunc {
482474
cloudbeaverNext = func(c echo.Context) ([]byte, error) {
483475
resp, ok = c.Get(cloudbeaver.AuditResultKey).(cloudbeaver.AuditResults)
484476
if ok {
485-
cu.UpdateCbOp(ctx, resp, taskID)
486477
if !resp.IsSuccess {
478+
cu.SaveCbOperationLogWithoutNext(c, dbService, params, resp)
487479
return nil, c.JSON(http.StatusOK, convertToResp(resp))
480+
} else {
481+
err = cu.SaveCbOpLog(c, dbService, params, resp, next)
482+
if err != nil {
483+
return nil, nil
484+
}
488485
}
489486
}
490487

@@ -510,9 +507,16 @@ func (cu *CloudbeaverUsecase) GraphQLDistributor() echo.MiddlewareFunc {
510507
} else {
511508
cloudbeaverNext = func(c echo.Context) ([]byte, error) {
512509
resp, ok = c.Get(cloudbeaver.AuditResultKey).(cloudbeaver.AuditResults)
513-
cu.UpdateCbOp(ctx, resp, taskID)
514-
if !resp.IsSuccess {
515-
return nil, c.JSON(http.StatusOK, convertToResp(resp))
510+
if ok {
511+
if !resp.IsSuccess {
512+
cu.SaveCbOperationLogWithoutNext(c, dbService, params, resp)
513+
return nil, c.JSON(http.StatusOK, convertToResp(resp))
514+
} else {
515+
err = cu.SaveCbOpLog(c, dbService, params, resp, next)
516+
if err != nil {
517+
return nil, nil
518+
}
519+
}
516520
}
517521

518522
resWrite = &responseProcessWriter{tmp: &bytes.Buffer{}, ResponseWriter: c.Response().Writer}

internal/dms/biz/cloudbeaver_ce.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,18 @@ func (cu *CloudbeaverUsecase) ResetDbServiceByAuth(ctx context.Context, activeDB
1515
return activeDBServices, nil
1616
}
1717

18-
func (cu *CloudbeaverUsecase) UpdateCbOp(ctx context.Context, resp cloudbeaver.AuditResults, taskID *string) {
19-
return
20-
}
21-
2218
func (cu *CloudbeaverUsecase) UpdateCbOpResult(c echo.Context, cloudbeaverResBuf *bytes.Buffer, params *graphql.RawParams, ctx context.Context) error {
2319
return nil
2420
}
2521

26-
func (cu *CloudbeaverUsecase) SaveCbOpLog(c echo.Context, dbService *DBService, params *graphql.RawParams, next echo.HandlerFunc) (*string, error) {
27-
return nil, nil
22+
func (cu *CloudbeaverUsecase) SaveCbOpLog(c echo.Context, dbService *DBService, params *graphql.RawParams, resp cloudbeaver.AuditResults, next echo.HandlerFunc) error {
23+
return nil
2824
}
2925

3026
func (cu *CloudbeaverUsecase) SaveUiOp(c echo.Context, buf *bytes.Buffer, params *graphql.RawParams) error {
3127
return nil
3228
}
29+
30+
func (cu *CloudbeaverUsecase) SaveCbOperationLogWithoutNext(c echo.Context, dbService *DBService, params *graphql.RawParams, resp cloudbeaver.AuditResults) {
31+
return
32+
}

0 commit comments

Comments
 (0)