mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-30 12:40:52 +00:00
[rust] support model/maps as deep/explode params
This commit is contained in:
parent
d6c4634269
commit
c8bb57fead
@ -192,36 +192,66 @@ impl {{classname}} for {{classname}}Client {
|
|||||||
{{/isNullable}}
|
{{/isNullable}}
|
||||||
{{#isNullable}}
|
{{#isNullable}}
|
||||||
{{#isDeepObject}}
|
{{#isDeepObject}}
|
||||||
if let Some(ref local_var_str) = {{{paramName}}} {
|
{{^isExplode}}
|
||||||
let params = crate::apis::parse_deep_object("{{{baseName}}}", local_var_str);
|
if let Some(ref param_value) = {{{paramName}}} {
|
||||||
|
let params = crate::apis::parse_deep_object("{{{baseName}}}", &serde_json::to_value(param_value)?);
|
||||||
local_var_req_builder = local_var_req_builder.query(¶ms);
|
local_var_req_builder = local_var_req_builder.query(¶ms);
|
||||||
};
|
}
|
||||||
|
{{/isExplode}}
|
||||||
|
{{#isExplode}}
|
||||||
|
{{#isModel}}
|
||||||
|
if let Some(ref param_value) = {{{paramName}}} {
|
||||||
|
local_var_req_builder = local_var_req_builder.query(¶m_value);
|
||||||
|
}
|
||||||
|
{{/isModel}}
|
||||||
|
{{#isMap}}
|
||||||
|
if let Some(ref param_value) = {{{paramName}}} {
|
||||||
|
let mut query_params = Vec::with_capacity(param_value.len());
|
||||||
|
for (key, value) in param_value.iter() {
|
||||||
|
query_params.push((key.to_string(), serde_json::to_string(value)?));
|
||||||
|
}
|
||||||
|
local_var_req_builder = local_var_req_builder.query(&query_params);
|
||||||
|
}
|
||||||
|
{{/isMap}}
|
||||||
|
{{/isExplode}}
|
||||||
{{/isDeepObject}}
|
{{/isDeepObject}}
|
||||||
{{^isDeepObject}}
|
{{^isDeepObject}}
|
||||||
if let Some(ref local_var_str) = {{{paramName}}} {
|
if let Some(ref param_value) = {{{paramName}}} {
|
||||||
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", &local_var_str.to_string())]);
|
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", ¶m_value.to_string())]);
|
||||||
};
|
};
|
||||||
{{/isDeepObject}}
|
{{/isDeepObject}}
|
||||||
{{/isNullable}}
|
{{/isNullable}}
|
||||||
{{/isArray}}
|
{{/isArray}}
|
||||||
{{/required}}
|
{{/required}}
|
||||||
{{^required}}
|
{{^required}}
|
||||||
if let Some(ref local_var_str) = {{{paramName}}} {
|
if let Some(ref param_value) = {{{paramName}}} {
|
||||||
{{#isArray}}
|
{{#isArray}}
|
||||||
local_var_req_builder = match "{{collectionFormat}}" {
|
local_var_req_builder = match "{{collectionFormat}}" {
|
||||||
"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)>>()),
|
"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)>>()),
|
||||||
_ => local_var_req_builder.query(&[("{{{baseName}}}", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
|
_ => local_var_req_builder.query(&[("{{{baseName}}}", ¶m_value.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
|
||||||
};
|
};
|
||||||
{{/isArray}}
|
{{/isArray}}
|
||||||
{{^isArray}}
|
|
||||||
{{#isDeepObject}}
|
{{#isDeepObject}}
|
||||||
let params = crate::apis::parse_deep_object("{{{baseName}}}", local_var_str);
|
{{^isExplode}}
|
||||||
|
let params = crate::apis::parse_deep_object("{{{baseName}}}", &serde_json::to_value(param_value)?);
|
||||||
local_var_req_builder = local_var_req_builder.query(¶ms);
|
local_var_req_builder = local_var_req_builder.query(¶ms);
|
||||||
|
{{/isExplode}}
|
||||||
|
{{#isExplode}}
|
||||||
|
{{#isModel}}
|
||||||
|
local_var_req_builder = local_var_req_builder.query(¶m_value);
|
||||||
|
{{/isModel}}
|
||||||
|
{{#isMap}}
|
||||||
|
let mut query_params = Vec::with_capacity(param_value.len());
|
||||||
|
for (key, value) in param_value.iter() {
|
||||||
|
query_params.push((key.to_string(), serde_json::to_string(value)?));
|
||||||
|
}
|
||||||
|
local_var_req_builder = local_var_req_builder.query(&query_params);
|
||||||
|
{{/isMap}}
|
||||||
|
{{/isExplode}}
|
||||||
{{/isDeepObject}}
|
{{/isDeepObject}}
|
||||||
{{^isDeepObject}}
|
{{^isDeepObject}}
|
||||||
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", &local_var_str.to_string())]);
|
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", ¶m_value.to_string())]);
|
||||||
{{/isDeepObject}}
|
{{/isDeepObject}}
|
||||||
{{/isArray}}
|
|
||||||
}
|
}
|
||||||
{{/required}}
|
{{/required}}
|
||||||
{{/queryParams}}
|
{{/queryParams}}
|
||||||
|
@ -160,8 +160,22 @@ pub {{#supportAsync}}async {{/supportAsync}}fn {{{operationId}}}(configuration:
|
|||||||
{{#isNullable}}
|
{{#isNullable}}
|
||||||
{{#isDeepObject}}
|
{{#isDeepObject}}
|
||||||
if let Some(ref param_value) = {{{vendorExtensions.x-rust-param-identifier}}} {
|
if let Some(ref param_value) = {{{vendorExtensions.x-rust-param-identifier}}} {
|
||||||
let params = crate::apis::parse_deep_object("{{{baseName}}}", param_value);
|
{{^isExplode}}
|
||||||
|
let params = crate::apis::parse_deep_object("{{{baseName}}}", &serde_json::to_value(param_value)?);
|
||||||
req_builder = req_builder.query(¶ms);
|
req_builder = req_builder.query(¶ms);
|
||||||
|
{{/isExplode}}
|
||||||
|
{{#isExplode}}
|
||||||
|
{{#isModel}}
|
||||||
|
req_builder = req_builder.query(¶m_value);
|
||||||
|
{{/isModel}}
|
||||||
|
{{#isMap}}
|
||||||
|
let mut query_params = Vec::with_capacity(param_value.len());
|
||||||
|
for (key, value) in param_value.iter() {
|
||||||
|
query_params.push((key.to_string(), serde_json::to_string(value)?));
|
||||||
|
}
|
||||||
|
req_builder = req_builder.query(&query_params);
|
||||||
|
{{/isMap}}
|
||||||
|
{{/isExplode}}
|
||||||
};
|
};
|
||||||
{{/isDeepObject}}
|
{{/isDeepObject}}
|
||||||
{{^isDeepObject}}
|
{{^isDeepObject}}
|
||||||
@ -182,8 +196,22 @@ pub {{#supportAsync}}async {{/supportAsync}}fn {{{operationId}}}(configuration:
|
|||||||
{{/isArray}}
|
{{/isArray}}
|
||||||
{{^isArray}}
|
{{^isArray}}
|
||||||
{{#isDeepObject}}
|
{{#isDeepObject}}
|
||||||
let params = crate::apis::parse_deep_object("{{{baseName}}}", param_value);
|
{{^isExplode}}
|
||||||
|
let params = crate::apis::parse_deep_object("{{{baseName}}}", &serde_json::to_value(param_value)?);
|
||||||
req_builder = req_builder.query(¶ms);
|
req_builder = req_builder.query(¶ms);
|
||||||
|
{{/isExplode}}
|
||||||
|
{{#isExplode}}
|
||||||
|
{{#isModel}}
|
||||||
|
req_builder = req_builder.query(¶m_value);
|
||||||
|
{{/isModel}}
|
||||||
|
{{#isMap}}
|
||||||
|
let mut query_params = Vec::with_capacity(param_value.len());
|
||||||
|
for (key, value) in param_value.iter() {
|
||||||
|
query_params.push((key.to_string(), serde_json::to_string(value)?));
|
||||||
|
}
|
||||||
|
req_builder = req_builder.query(&query_params);
|
||||||
|
{{/isMap}}
|
||||||
|
{{/isExplode}}
|
||||||
{{/isDeepObject}}
|
{{/isDeepObject}}
|
||||||
{{^isDeepObject}}
|
{{^isDeepObject}}
|
||||||
req_builder = req_builder.query(&[("{{{baseName}}}", ¶m_value.to_string())]);
|
req_builder = req_builder.query(&[("{{{baseName}}}", ¶m_value.to_string())]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user