Skip to content

Commit

Permalink
Rust Client: Support collectionFormat="multi" (#11169)
Browse files Browse the repository at this point in the history
Previously, rust-client generator disregarded collectionFormat property of
multi-value parameters. Now we support following values in collectionFormat: "",
"csv", "multi".

You can review changes this creates for fairly sizable project at https://github.com/CrowdStrike/rusty-falcon/pull/33/files
  • Loading branch information
isimluk committed Dec 29, 2021
1 parent aa61220 commit 08773a2
Showing 1 changed file with 18 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,11 +101,27 @@ pub {{#supportAsync}}async {{/supportAsync}}fn {{{operationId}}}(configuration:

{{#queryParams}}
{{#required}}
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", &{{{paramName}}}{{#isArray}}.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(","){{/isArray}}.to_string())]);
{{#isArray}}
local_var_req_builder = match "{{collectionFormat}}" {
"multi" => local_var_req_builder.query(&{{{paramName}}}.into_iter().map(|p| ("{{{baseName}}}".to_owned(), p)).collect::<Vec<(std::string::String, std::string::String)>>()),
_ => local_var_req_builder.query(&[("{{{baseName}}}", &{{{paramName}}}.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
};
{{/isArray}}
{{^isArray}}
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", &{{{paramName}}}.to_string())]);
{{/isArray}}
{{/required}}
{{^required}}
if let Some(ref local_var_str) = {{{paramName}}} {
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", &local_var_str{{#isArray}}.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(","){{/isArray}}.to_string())]);
{{#isArray}}
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)>>()),
_ => local_var_req_builder.query(&[("{{{baseName}}}", &local_var_str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
};
{{/isArray}}
{{^isArray}}
local_var_req_builder = local_var_req_builder.query(&[("{{{baseName}}}", &local_var_str.to_string())]);
{{/isArray}}
}
{{/required}}
{{/queryParams}}
Expand Down

0 comments on commit 08773a2

Please sign in to comment.