@@ -28,6 +28,12 @@ class Client
2828 'Accept' => 'application/json'
2929 }
3030
31+ # Parameters that are always on the URL, even for POST
32+ POST_URL_PARAMS = [
33+ :WebHook ,
34+ :JobId
35+ ] . freeze
36+
3137 def get ( path , params = { } , options = { } )
3238 handle_response do
3339 request = Net ::HTTP ::Get . new ( request_uri ( path , params ) , DEFAULT_HEADERS )
@@ -38,7 +44,7 @@ def get(path, params = {}, options = {})
3844
3945 def post ( path , params , options = { } )
4046 handle_response do
41- request = Net ::HTTP ::Post . new ( request_uri ( path ) , DEFAULT_HEADERS )
47+ request = Net ::HTTP ::Post . new ( request_uri ( path , post_url_params ( params ) ) , DEFAULT_HEADERS )
4248 request . form_data = build_form_data ( params )
4349
4450 http ( options ) . request ( request )
@@ -113,16 +119,22 @@ def build_form_data(params)
113119 data = { }
114120
115121 params . each do |key , value |
116- if value . is_a? ( Array )
117- value . each_with_index { |v , i | data [ "#{ key } [#{ i } ]" ] = v }
118- else
119- data [ key ] = value
122+ unless POST_URL_PARAMS . include? ( key )
123+ if value . is_a? ( Array )
124+ value . each_with_index { |v , i | data [ "#{ key } [#{ i } ]" ] = v }
125+ else
126+ data [ key ] = value
127+ end
120128 end
121129 end
122130
123131 data
124132 end
125133
134+ def post_url_params ( params )
135+ params . select { |k , v | POST_URL_PARAMS . include? ( k ) }
136+ end
137+
126138 def base_uri
127139 config . base_uri
128140 end
0 commit comments