Skip to content

Commit eba901e

Browse files
committed
[cpp-rest-sdk] fix enum values being used instead of names
1 parent 4b2abdf commit eba901e

File tree

6 files changed

+25
-24
lines changed

6 files changed

+25
-24
lines changed

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

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,11 @@ public:
185185
{{#isEnum}}
186186
enum class {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}
187187
{
188-
{{#allowableValues}}{{#enumVars}}{{value}},
189-
{{/enumVars}}{{/allowableValues}}
188+
{{#allowableValues}}
189+
{{#enumVars}}
190+
{{{name}}}{{^last}},{{/last}}
191+
{{/enumVars}}
192+
{{/allowableValues}}
190193
};
191194
{{#description}}
192195
/// <summary>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ bool {{classname}}::fromMultiPart(std::shared_ptr<MultipartFormData> multipart,
354354
{
355355
{{#allowableValues}}{{#enumVars}}
356356
if (value == utility::conversions::to_string_t("{{value}}")) {
357-
return {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{value}};
357+
return {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{name}};
358358
}
359359
{{/enumVars}}{{/allowableValues}}
360360
throw std::invalid_argument("Invalid value for conversion to {{{datatypeWithEnum}}}");
@@ -369,7 +369,7 @@ const {{dataType}} {{classname}}::from{{{datatypeWithEnum}}}(const {{{datatypeWi
369369
switch(value)
370370
{
371371
{{#allowableValues}}{{#enumVars}}
372-
case {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{value}}: return utility::conversions::to_string_t("{{value}}");
372+
case {{#isContainer}}{{{enumName}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}{{/isContainer}}::{{name}}: return utility::conversions::to_string_t("{{value}}");
373373
{{/enumVars}}{{/allowableValues}}
374374
}
375375
}

samples/client/petstore/cpp-restsdk/client/include/CppRestPetstoreClient/model/Order.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,9 @@ class Order
5858

5959
enum class StatusEnum
6060
{
61-
placed,
62-
approved,
63-
delivered,
64-
61+
PLACED,
62+
APPROVED,
63+
DELIVERED,
6564
};
6665
/// <summary>
6766
/// Order Status

samples/client/petstore/cpp-restsdk/client/include/CppRestPetstoreClient/model/Pet.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,9 @@ class Pet
6363

6464
enum class StatusEnum
6565
{
66-
available,
67-
pending,
68-
sold,
69-
66+
AVAILABLE,
67+
PENDING,
68+
SOLD,
7069
};
7170
/// <summary>
7271
/// pet status in the store

samples/client/petstore/cpp-restsdk/client/src/model/Order.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -239,15 +239,15 @@ Order::StatusEnum Order::toStatusEnum(const utility::string_t& value) const
239239
{
240240

241241
if (value == utility::conversions::to_string_t("placed")) {
242-
return StatusEnum::placed;
242+
return StatusEnum::PLACED;
243243
}
244244

245245
if (value == utility::conversions::to_string_t("approved")) {
246-
return StatusEnum::approved;
246+
return StatusEnum::APPROVED;
247247
}
248248

249249
if (value == utility::conversions::to_string_t("delivered")) {
250-
return StatusEnum::delivered;
250+
return StatusEnum::DELIVERED;
251251
}
252252

253253
throw std::invalid_argument("Invalid value for conversion to StatusEnum");
@@ -259,11 +259,11 @@ const utility::string_t Order::fromStatusEnum(const StatusEnum value) const
259259
switch(value)
260260
{
261261

262-
case StatusEnum::placed: return utility::conversions::to_string_t("placed");
262+
case StatusEnum::PLACED: return utility::conversions::to_string_t("placed");
263263

264-
case StatusEnum::approved: return utility::conversions::to_string_t("approved");
264+
case StatusEnum::APPROVED: return utility::conversions::to_string_t("approved");
265265

266-
case StatusEnum::delivered: return utility::conversions::to_string_t("delivered");
266+
case StatusEnum::DELIVERED: return utility::conversions::to_string_t("delivered");
267267

268268
}
269269
}

samples/client/petstore/cpp-restsdk/client/src/model/Pet.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -236,15 +236,15 @@ Pet::StatusEnum Pet::toStatusEnum(const utility::string_t& value) const
236236
{
237237

238238
if (value == utility::conversions::to_string_t("available")) {
239-
return StatusEnum::available;
239+
return StatusEnum::AVAILABLE;
240240
}
241241

242242
if (value == utility::conversions::to_string_t("pending")) {
243-
return StatusEnum::pending;
243+
return StatusEnum::PENDING;
244244
}
245245

246246
if (value == utility::conversions::to_string_t("sold")) {
247-
return StatusEnum::sold;
247+
return StatusEnum::SOLD;
248248
}
249249

250250
throw std::invalid_argument("Invalid value for conversion to StatusEnum");
@@ -256,11 +256,11 @@ const utility::string_t Pet::fromStatusEnum(const StatusEnum value) const
256256
switch(value)
257257
{
258258

259-
case StatusEnum::available: return utility::conversions::to_string_t("available");
259+
case StatusEnum::AVAILABLE: return utility::conversions::to_string_t("available");
260260

261-
case StatusEnum::pending: return utility::conversions::to_string_t("pending");
261+
case StatusEnum::PENDING: return utility::conversions::to_string_t("pending");
262262

263-
case StatusEnum::sold: return utility::conversions::to_string_t("sold");
263+
case StatusEnum::SOLD: return utility::conversions::to_string_t("sold");
264264

265265
}
266266
}

0 commit comments

Comments
 (0)