@@ -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 }
0 commit comments