@@ -192,36 +192,66 @@ impl {{classname}} for {{classname}}Client {
192192 { {/isNullable} }
193193 { {#isNullable} }
194194 { {#isDeepObject} }
195- if let Some(ref local_var_str) = { {{paramName} }} {
196- let params = crate::apis::parse_deep_object(" {{{baseName}}}" , local_var_str);
195+ { {^isExplode} }
196+ if let Some(ref param_value) = { {{paramName} }} {
197+ let params = crate::apis::parse_deep_object(" {{{baseName}}}" , &serde_json::to_value(param_value)?);
197198 local_var_req_builder = local_var_req_builder.query(¶ms);
198- } ;
199+ }
200+ { {/isExplode} }
201+ { {#isExplode} }
202+ { {#isModel} }
203+ if let Some(ref param_value) = { {{paramName} }} {
204+ local_var_req_builder = local_var_req_builder.query(¶m_value);
205+ }
206+ { {/isModel} }
207+ { {#isMap} }
208+ if let Some(ref param_value) = { {{paramName} }} {
209+ let mut query_params = Vec::with_capacity(param_value.len());
210+ for (key, value) in param_value.iter() {
211+ query_params.push((key.to_string(), serde_json::to_string(value)?));
212+ }
213+ local_var_req_builder = local_var_req_builder.query(&query_params);
214+ }
215+ { {/isMap} }
216+ { {/isExplode} }
199217 { {/isDeepObject} }
200218 { {^isDeepObject} }
201- if let Some(ref local_var_str ) = { {{paramName} }} {
202- local_var_req_builder = local_var_req_builder.query(&[(" {{{baseName}}}" , &local_var_str .to_string())]);
219+ if let Some(ref param_value ) = { {{paramName} }} {
220+ local_var_req_builder = local_var_req_builder.query(&[(" {{{baseName}}}" , ¶m_value .to_string())]);
203221 } ;
204222 { {/isDeepObject} }
205223 { {/isNullable} }
206224 { {/isArray} }
207225 { {/required} }
208226 { {^required} }
209- if let Some(ref local_var_str ) = { {{paramName} }} {
227+ if let Some(ref param_value ) = { {{paramName} }} {
210228 {{#isArray} }
211229 local_var_req_builder = match "{ {collectionFormat} }" {
212- " multi" => local_var_req_builder.query(&local_var_str .into_iter().map(|p| (" {{{baseName}}}" .to_owned(), p.to_string())).collect::< Vec< (std::string::String, std::string::String)>> ()),
213- _ => local_var_req_builder.query(&[(" {{{baseName}}}" , &local_var_str .into_iter().map(|p| p.to_string()).collect::< Vec< String>> ().join(" ," ).to_string())]),
230+ " multi" => local_var_req_builder.query(¶m_value .into_iter().map(|p| (" {{{baseName}}}" .to_owned(), p.to_string())).collect::< Vec< (std::string::String, std::string::String)>> ()),
231+ _ => local_var_req_builder.query(&[(" {{{baseName}}}" , ¶m_value .into_iter().map(|p| p.to_string()).collect::< Vec< String>> ().join(" ," ).to_string())]),
214232 } ;
215233 { {/isArray} }
216- { {^isArray} }
217234 { {#isDeepObject} }
218- let params = crate::apis::parse_deep_object("{ {{baseName} }}", local_var_str);
235+ { {^isExplode} }
236+ let params = crate::apis::parse_deep_object("{ {{baseName} }}", &serde_json::to_value(param_value)?);
219237 local_var_req_builder = local_var_req_builder.query(¶ms);
238+ { {/isExplode} }
239+ { {#isExplode} }
240+ { {#isModel} }
241+ local_var_req_builder = local_var_req_builder.query(¶m_value);
242+ { {/isModel} }
243+ { {#isMap} }
244+ let mut query_params = Vec::with_capacity(param_value.len());
245+ for (key, value) in param_value.iter() {
246+ query_params.push((key.to_string(), serde_json::to_string(value)?));
247+ }
248+ local_var_req_builder = local_var_req_builder.query(&query_params);
249+ { {/isMap} }
250+ { {/isExplode} }
220251 { {/isDeepObject} }
221252 { {^isDeepObject} }
222- local_var_req_builder = local_var_req_builder.query(& [("{ {{baseName} }}", &local_var_str .to_string())]);
253+ local_var_req_builder = local_var_req_builder.query(& [("{ {{baseName} }}", ¶m_value .to_string())]);
223254 { {/isDeepObject} }
224- { {/isArray} }
225255 }
226256 { {/required} }
227257 { {/queryParams} }
0 commit comments