Skip to content

Commit c487a6e

Browse files
authored
Fix missing serverConf variable (#19859)
Previously, if an operation had a 'servers' block, the template would emit code requiring a `serverConf` local variable. Unfortunately, the template would not emit this variable, because it was looking for a `servers` variable in the wrong context. This change makes the template emit an anonymous block containing a unique server configuration for each operation. I did not test this change beyond a simple code inspection, there are other problems with the code generator which prevent it from running on my API definition.
1 parent 21a8e4e commit c487a6e

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

modules/openapi-generator/src/main/resources/cpp-qt-client/api-body.mustache

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ void {{classname}}::initializeServerConfigs() {
2323
//Default server
2424
QList<{{prefix}}ServerConfiguration> defaultConf = QList<{{prefix}}ServerConfiguration>();
2525
//varying endpoint server
26-
{{#servers}}
27-
QList<{{prefix}}ServerConfiguration> serverConf = QList<{{prefix}}ServerConfiguration>();
28-
{{/servers}}
2926
{{#vendorExtensions.x-cpp-global-server-list}}
3027
defaultConf.append({{prefix}}ServerConfiguration(
3128
QUrl("{{{url}}}"),
@@ -42,15 +39,18 @@ void {{classname}}::initializeServerConfigs() {
4239
_serverIndices.insert("{{nickname}}", 0);
4340
{{/servers}}
4441
{{#servers}}
45-
serverConf.append({{prefix}}ServerConfiguration(
46-
QUrl("{{{url}}}"),
47-
"{{{description}}}{{^description}}No description provided{{/description}}",
48-
{{#variables}}{{#-first}}QMap<QString, {{prefix}}ServerVariable>{ {{/-first}}
49-
{"{{{name}}}", {{prefix}}ServerVariable("{{{description}}}{{^description}}No description provided{{/description}}","{{{defaultValue}}}",
50-
QSet<QString>{ {{#enumValues}}{"{{{.}}}"}{{#-last}} })}, {{/-last}}{{^-last}},{{/-last}}{{/enumValues}}{{^enumValues}}{"{{defaultValue}}"} })},{{/enumValues}}{{#-last}} }));{{/-last}}
51-
{{/variables}}{{^variables}}QMap<QString, {{prefix}}ServerVariable>()));{{/variables}}
52-
{{#-last}}_serverConfigs.insert("{{nickname}}", serverConf);
53-
_serverIndices.insert("{{nickname}}", 0);{{/-last}}
42+
{
43+
QList<{{prefix}}ServerConfiguration> serverConf = QList<{{prefix}}ServerConfiguration>();
44+
serverConf.append({{prefix}}ServerConfiguration(
45+
QUrl("{{{url}}}"),
46+
"{{{description}}}{{^description}}No description provided{{/description}}",
47+
{{#variables}}{{#-first}}QMap<QString, {{prefix}}ServerVariable>{ {{/-first}}
48+
{"{{{name}}}", {{prefix}}ServerVariable("{{{description}}}{{^description}}No description provided{{/description}}","{{{defaultValue}}}",
49+
QSet<QString>{ {{#enumValues}}{"{{{.}}}"}{{#-last}} })}, {{/-last}}{{^-last}},{{/-last}}{{/enumValues}}{{^enumValues}}{"{{defaultValue}}"} })},{{/enumValues}}{{#-last}} }));{{/-last}}
50+
{{/variables}}{{^variables}}QMap<QString, {{prefix}}ServerVariable>()));{{/variables}}
51+
{{#-last}}_serverConfigs.insert("{{nickname}}", serverConf);
52+
_serverIndices.insert("{{nickname}}", 0);{{/-last}}
53+
}
5454
{{/servers}}
5555
{{/operation}}
5656
{{/operations}}

0 commit comments

Comments
 (0)