Skip to content

Commit 008c12c

Browse files
committed
[cpp-rest-sdk]: handle trailing commas for vector/map
1 parent e5211db commit 008c12c

2 files changed

Lines changed: 30 additions & 8 deletions

File tree

modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/apiclient-header.mustache

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,15 @@ utility::string_t ApiClient::parameterToString(const std::vector<T>& value)
8787
{
8888
utility::stringstream_t ss;
8989
90-
for( size_t i = 0; i < value.size(); i++)
90+
bool isFirst = true;
91+
for(const auto& item : value)
9192
{
92-
if( i > 0) ss << utility::conversions::to_string_t(", ");
93-
ss << ApiClient::parameterToString(value[i]);
93+
if (!isFirst) {
94+
ss << utility::conversions::to_string_t(", ");
95+
} else {
96+
isFirst = false;
97+
}
98+
ss << ApiClient::parameterToString(item);
9499
}
95100

96101
return ss.str();
@@ -101,9 +106,15 @@ utility::string_t ApiClient::parameterToString(const std::map<T, U>& value)
101106
{
102107
utility::stringstream_t ss;
103108
ss << "{";
109+
bool isFirst = true;
104110
for(const auto& pair : value)
105111
{
106-
ss << ApiClient::parameterToString(pair.first) << ": " << ApiClient::parameterToString(pair.second) << ", ";
112+
if (!isFirst) {
113+
ss << ", ";
114+
} else {
115+
isFirst = false;
116+
}
117+
ss << ApiClient::parameterToString(pair.first) << ": " << ApiClient::parameterToString(pair.second);
107118
}
108119
ss << "}";
109120
return ss.str();

samples/client/petstore/cpp-restsdk/client/include/CppRestPetstoreClient/ApiClient.h

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,15 @@ utility::string_t ApiClient::parameterToString(const std::vector<T>& value)
9494
{
9595
utility::stringstream_t ss;
9696

97-
for( size_t i = 0; i < value.size(); i++)
97+
bool isFirst = true;
98+
for(const auto& item : value)
9899
{
99-
if( i > 0) ss << utility::conversions::to_string_t(", ");
100-
ss << ApiClient::parameterToString(value[i]);
100+
if (!isFirst) {
101+
ss << utility::conversions::to_string_t(", ");
102+
} else {
103+
isFirst = false;
104+
}
105+
ss << ApiClient::parameterToString(item);
101106
}
102107

103108
return ss.str();
@@ -108,9 +113,15 @@ utility::string_t ApiClient::parameterToString(const std::map<T, U>& value)
108113
{
109114
utility::stringstream_t ss;
110115
ss << "{";
116+
bool isFirst = true;
111117
for(const auto& pair : value)
112118
{
113-
ss << ApiClient::parameterToString(pair.first) << ": " << ApiClient::parameterToString(pair.second) << ", ";
119+
if (!isFirst) {
120+
ss << ", ";
121+
} else {
122+
isFirst = false;
123+
}
124+
ss << ApiClient::parameterToString(pair.first) << ": " << ApiClient::parameterToString(pair.second);
114125
}
115126
ss << "}";
116127
return ss.str();

0 commit comments

Comments
 (0)