aboutsummaryrefslogtreecommitdiff
path: root/trunks.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2023-05-05 11:56:19 +0700
committerShulhan <ms@kilabit.info>2023-05-05 11:56:19 +0700
commit739aa7273d5cbaba71905cf69773c55a5f33b98c (patch)
tree224a3d63619abaeb9a684a3e577a0bf131f88edf /trunks.go
parent29ab7633c94a6ddb9a983393d1284828a617a7d0 (diff)
downloadgorankusu-739aa7273d5cbaba71905cf69773c55a5f33b98c.tar.xz
all: check and call ConvertParams when running HttpTarget
If the ConvertParams field is set, use it to convert the parameters into desired type.
Diffstat (limited to 'trunks.go')
-rw-r--r--trunks.go21
1 files changed, 14 insertions, 7 deletions
diff --git a/trunks.go b/trunks.go
index e0c5932..f1563e5 100644
--- a/trunks.go
+++ b/trunks.go
@@ -346,13 +346,20 @@ func (trunks *Trunks) runHttpTarget(rr *RunRequest) (res *RunResponse, err error
httpc := libhttp.NewClient(httpcOpts)
- switch rr.HttpTarget.RequestType {
- case libhttp.RequestTypeJSON:
- params = rr.HttpTarget.Params.ToJsonObject()
- case libhttp.RequestTypeMultipartForm:
- params = rr.HttpTarget.Params.ToMultipartFormData()
- default:
- params = rr.HttpTarget.Params.ToUrlValues()
+ if rr.HttpTarget.ConvertParams == nil {
+ switch rr.HttpTarget.RequestType {
+ case libhttp.RequestTypeJSON:
+ params = rr.HttpTarget.Params.ToJsonObject()
+ case libhttp.RequestTypeMultipartForm:
+ params = rr.HttpTarget.Params.ToMultipartFormData()
+ default:
+ params = rr.HttpTarget.Params.ToUrlValues()
+ }
+ } else {
+ params, err = rr.HttpTarget.ConvertParams(&rr.HttpTarget)
+ if err != nil {
+ return nil, fmt.Errorf(`%s: %w`, logp, err)
+ }
}
res = &RunResponse{}