Skip to content

Commit 6f37a58

Browse files
leslizhangrickyma
authored andcommitted
[cpprestsdk] Support passing enum request parameters
1 parent 4ad76cc commit 6f37a58

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,15 @@ class {{declspec}} {{classname}}
9292
{
9393
public:
9494
{{classname}}();
95+
{{classname}}(utility::string_t str);
96+
operator utility::string_t() const {
97+
return enumToStrMap.at(getValue());
98+
}
99+
100+
{{! operator std::string() const {
101+
return enumToStrMap.at(getValue());
102+
} }}
103+
95104
virtual ~{{classname}}();
96105

97106
/////////////////////////////////////////////
@@ -124,6 +133,21 @@ public:
124133

125134
protected:
126135
e{{classname}} m_value;
136+
std::map<e{{classname}},utility::string_t> enumToStrMap = {
137+
{{#allowableValues}}
138+
{{#enumVars}}
139+
{ e{{classname}}::{{classname}}_{{{name}}}, "{{{name}}}" }{{^-last}},{{/-last}}
140+
{{/enumVars}}
141+
{{/allowableValues}}
142+
};
143+
std::map<utility::string_t,e{{classname}}> strToEnumMap = {
144+
{{#allowableValues}}
145+
{{#enumVars}}
146+
{ "{{{name}}}", e{{classname}}::{{classname}}_{{{name}}} }{{^-last}},{{/-last}}
147+
{{/enumVars}}
148+
{{/allowableValues}}
149+
};
150+
127151
};
128152
{{/isEnum}}
129153
{{^isEnum}}

modules/openapi-generator/src/main/resources/cpp-rest-sdk-client/model-source.mustache

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ void {{classname}}::setValue({{classname}}::e{{classname}} const value)
176176
m_value = value;
177177
}
178178

179+
{{classname}}::{{classname}}(utility::string_t str){
180+
setValue( strToEnumMap[str] );
181+
}
182+
179183
{{/isEnum}}
180184
{{^isEnum}}
181185

0 commit comments

Comments
 (0)