From abdd3076527cdce48e5d52c77e8090cde467a91f Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Sat, 17 Sep 2022 16:01:17 +0800 Subject: [PATCH 1/4] Make the nil and empty of the `BinPayload` equivalent --- dtmsvr/trans_status.go | 2 +- dtmutil/utils.go | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/dtmsvr/trans_status.go b/dtmsvr/trans_status.go index 23334d7..5fa142c 100644 --- a/dtmsvr/trans_status.go +++ b/dtmsvr/trans_status.go @@ -141,7 +141,7 @@ func (t *TransGlobal) getHTTPResult(uri string, branchID, op string, branchPaylo SetHeader("Content-type", "application/json"). SetHeaders(t.Ext.Headers). SetHeaders(t.TransOptions.BranchHeaders). - Execute(dtmimp.If(branchPayload != nil || t.TransType == "xa", "POST", "GET").(string), uri) + Execute(dtmimp.If(!dtmutil.IsEmptyBinPayload(branchPayload) || t.TransType == "xa", "POST", "GET").(string), uri) if err != nil { return err } diff --git a/dtmutil/utils.go b/dtmutil/utils.go index eec4265..74162a1 100644 --- a/dtmutil/utils.go +++ b/dtmutil/utils.go @@ -173,3 +173,8 @@ func RunSQLScript(conf dtmcli.DBConf, script string, skipDrop bool) { logger.Infof("sql scripts finished: %s", s) } } + +// IsEmptyBinPayload returns true if the bin data is nil or empty +func IsEmptyBinPayload(binPayload []byte) bool { + return binPayload == nil || len(binPayload) == 0 +} From 8f5a92f48139dea737d627d77c904998379687f7 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Sat, 17 Sep 2022 16:09:41 +0800 Subject: [PATCH 2/4] Rename to `IsEmptyBinData` --- dtmsvr/trans_status.go | 2 +- dtmutil/utils.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dtmsvr/trans_status.go b/dtmsvr/trans_status.go index 5fa142c..d9541d1 100644 --- a/dtmsvr/trans_status.go +++ b/dtmsvr/trans_status.go @@ -141,7 +141,7 @@ func (t *TransGlobal) getHTTPResult(uri string, branchID, op string, branchPaylo SetHeader("Content-type", "application/json"). SetHeaders(t.Ext.Headers). SetHeaders(t.TransOptions.BranchHeaders). - Execute(dtmimp.If(!dtmutil.IsEmptyBinPayload(branchPayload) || t.TransType == "xa", "POST", "GET").(string), uri) + Execute(dtmimp.If(!dtmutil.IsEmptyBinData(branchPayload) || t.TransType == "xa", "POST", "GET").(string), uri) if err != nil { return err } diff --git a/dtmutil/utils.go b/dtmutil/utils.go index 74162a1..92b5957 100644 --- a/dtmutil/utils.go +++ b/dtmutil/utils.go @@ -174,7 +174,7 @@ func RunSQLScript(conf dtmcli.DBConf, script string, skipDrop bool) { } } -// IsEmptyBinPayload returns true if the bin data is nil or empty -func IsEmptyBinPayload(binPayload []byte) bool { +// IsEmptyBinData returns true if the bin data is nil or empty +func IsEmptyBinData(binPayload []byte) bool { return binPayload == nil || len(binPayload) == 0 } From 841f10e3f7c374c507a8caed72d4bdca63910420 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Sat, 17 Sep 2022 16:19:30 +0800 Subject: [PATCH 3/4] Improve `IsEmptyBinData` --- dtmutil/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dtmutil/utils.go b/dtmutil/utils.go index 92b5957..21e8a82 100644 --- a/dtmutil/utils.go +++ b/dtmutil/utils.go @@ -176,5 +176,5 @@ func RunSQLScript(conf dtmcli.DBConf, script string, skipDrop bool) { // IsEmptyBinData returns true if the bin data is nil or empty func IsEmptyBinData(binPayload []byte) bool { - return binPayload == nil || len(binPayload) == 0 + return len(binPayload) == 0 } From c16fb38116bac5c17ee79d3bcfac116bf2e1b956 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Sat, 17 Sep 2022 16:34:12 +0800 Subject: [PATCH 4/4] Use `determineHttpRequestMethod` --- dtmsvr/trans_status.go | 6 +++++- dtmutil/utils.go | 5 ----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/dtmsvr/trans_status.go b/dtmsvr/trans_status.go index d9541d1..38b5cce 100644 --- a/dtmsvr/trans_status.go +++ b/dtmsvr/trans_status.go @@ -141,13 +141,17 @@ func (t *TransGlobal) getHTTPResult(uri string, branchID, op string, branchPaylo SetHeader("Content-type", "application/json"). SetHeaders(t.Ext.Headers). SetHeaders(t.TransOptions.BranchHeaders). - Execute(dtmimp.If(!dtmutil.IsEmptyBinData(branchPayload) || t.TransType == "xa", "POST", "GET").(string), uri) + Execute(t.determineHttpRequestMethod(branchPayload), uri) if err != nil { return err } return dtmcli.HTTPResp2DtmError(resp) } +func (t *TransGlobal) determineHttpRequestMethod(branchPayload []byte) string { + return dtmimp.If(len(branchPayload) != 0 || t.TransType == "xa", "POST", "GET").(string) +} + func (t *TransGlobal) getJSONRPCResult(uri string, branchID, op string, branchPayload []byte) error { var params map[string]interface{} dtmimp.MustUnmarshal(branchPayload, ¶ms) diff --git a/dtmutil/utils.go b/dtmutil/utils.go index 21e8a82..eec4265 100644 --- a/dtmutil/utils.go +++ b/dtmutil/utils.go @@ -173,8 +173,3 @@ func RunSQLScript(conf dtmcli.DBConf, script string, skipDrop bool) { logger.Infof("sql scripts finished: %s", s) } } - -// IsEmptyBinData returns true if the bin data is nil or empty -func IsEmptyBinData(binPayload []byte) bool { - return len(binPayload) == 0 -}