aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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{}