Skip to content

Commit 2d99836

Browse files
whoanwing328
authored andcommitted
[C++] [cpp-rest-sdk] Check for null values (OpenAPITools#990)
* Check whether a value is present but null * Update Petstore sample
1 parent 6a1e560 commit 2d99836

37 files changed

+177
-79
lines changed

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

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,11 @@ void {{classname}}::fromJson(web::json::value& val)
140140
{{^required}}
141141
if(val.has_field(utility::conversions::to_string_t("{{baseName}}")))
142142
{
143-
{{setter}}(ModelBase::{{baseType}}FromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
143+
web::json::value& fieldValue = val[utility::conversions::to_string_t("{{baseName}}")];
144+
if(!fieldValue.is_null())
145+
{
146+
{{setter}}(ModelBase::{{baseType}}FromJson(fieldValue));
147+
}
144148
}
145149
{{/required}}
146150
{{#required}}
@@ -242,27 +246,28 @@ void {{classname}}::fromJson(web::json::value& val)
242246
{{^required}}
243247
if(val.has_field(utility::conversions::to_string_t("{{baseName}}")))
244248
{
245-
{{#isString}}
246-
{{setter}}(ModelBase::stringFromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
247-
{{/isString}}
248-
{{#isByteArray}}
249-
{{setter}}(ModelBase::stringFromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
250-
{{/isByteArray}}
251-
{{^isString}}
252-
{{#isDateTime}}
253-
{{setter}}(ModelBase::dateFromJson(val[utility::conversions::to_string_t("{{baseName}}")]));
254-
{{/isDateTime}}
255-
{{^isDateTime}}
256-
{{^isByteArray}}
257-
if(!val[utility::conversions::to_string_t("{{baseName}}")].is_null())
249+
web::json::value& fieldValue = val[utility::conversions::to_string_t("{{baseName}}")];
250+
if(!fieldValue.is_null())
258251
{
252+
{{#isString}}
253+
{{setter}}(ModelBase::stringFromJson(fieldValue));
254+
{{/isString}}
255+
{{#isByteArray}}
256+
{{setter}}(ModelBase::stringFromJson(fieldValue));
257+
{{/isByteArray}}
258+
{{^isString}}
259+
{{#isDateTime}}
260+
{{setter}}(ModelBase::dateFromJson(fieldValue));
261+
{{/isDateTime}}
262+
{{^isDateTime}}
263+
{{^isByteArray}}
259264
{{{dataType}}} newItem({{{defaultValue}}});
260-
newItem->fromJson(val[utility::conversions::to_string_t("{{baseName}}")]);
265+
newItem->fromJson(fieldValue);
261266
{{setter}}( newItem );
267+
{{/isByteArray}}
268+
{{/isDateTime}}
269+
{{/isString}}
262270
}
263-
{{/isByteArray}}
264-
{{/isDateTime}}
265-
{{/isString}}
266271
}
267272
{{/required}}
268273
{{#required}}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.2.2-SNAPSHOT
1+
3.3.0-SNAPSHOT

samples/client/petstore/cpp-restsdk/ApiClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/ApiConfiguration.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/ApiConfiguration.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/ApiException.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/ApiException.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/HttpContent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/HttpContent.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/IHttpBody.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/JsonBody.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/JsonBody.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/ModelBase.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/ModelBase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/MultipartFormData.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/MultipartFormData.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/Object.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/Object.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/api/PetApi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/api/PetApi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/api/StoreApi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/api/StoreApi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/api/UserApi.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/api/UserApi.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/model/ApiResponse.cpp

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/
@@ -61,15 +61,27 @@ void ApiResponse::fromJson(web::json::value& val)
6161
{
6262
if(val.has_field(utility::conversions::to_string_t("code")))
6363
{
64-
setCode(ModelBase::int32_tFromJson(val[utility::conversions::to_string_t("code")]));
64+
web::json::value& fieldValue = val[utility::conversions::to_string_t("code")];
65+
if(!fieldValue.is_null())
66+
{
67+
setCode(ModelBase::int32_tFromJson(fieldValue));
68+
}
6569
}
6670
if(val.has_field(utility::conversions::to_string_t("type")))
6771
{
68-
setType(ModelBase::stringFromJson(val[utility::conversions::to_string_t("type")]));
72+
web::json::value& fieldValue = val[utility::conversions::to_string_t("type")];
73+
if(!fieldValue.is_null())
74+
{
75+
setType(ModelBase::stringFromJson(fieldValue));
76+
}
6977
}
7078
if(val.has_field(utility::conversions::to_string_t("message")))
7179
{
72-
setMessage(ModelBase::stringFromJson(val[utility::conversions::to_string_t("message")]));
80+
web::json::value& fieldValue = val[utility::conversions::to_string_t("message")];
81+
if(!fieldValue.is_null())
82+
{
83+
setMessage(ModelBase::stringFromJson(fieldValue));
84+
}
7385
}
7486
}
7587

samples/client/petstore/cpp-restsdk/model/ApiResponse.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

samples/client/petstore/cpp-restsdk/model/Category.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/
@@ -55,11 +55,19 @@ void Category::fromJson(web::json::value& val)
5555
{
5656
if(val.has_field(utility::conversions::to_string_t("id")))
5757
{
58-
setId(ModelBase::int64_tFromJson(val[utility::conversions::to_string_t("id")]));
58+
web::json::value& fieldValue = val[utility::conversions::to_string_t("id")];
59+
if(!fieldValue.is_null())
60+
{
61+
setId(ModelBase::int64_tFromJson(fieldValue));
62+
}
5963
}
6064
if(val.has_field(utility::conversions::to_string_t("name")))
6165
{
62-
setName(ModelBase::stringFromJson(val[utility::conversions::to_string_t("name")]));
66+
web::json::value& fieldValue = val[utility::conversions::to_string_t("name")];
67+
if(!fieldValue.is_null())
68+
{
69+
setName(ModelBase::stringFromJson(fieldValue));
70+
}
6371
}
6472
}
6573

samples/client/petstore/cpp-restsdk/model/Category.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*
55
* OpenAPI spec version: 1.0.0
66
*
7-
* NOTE: This class is auto generated by OpenAPI-Generator 3.2.2-SNAPSHOT.
7+
* NOTE: This class is auto generated by OpenAPI-Generator 3.3.0-SNAPSHOT.
88
* https://openapi-generator.tech
99
* Do not edit the class manually.
1010
*/

0 commit comments

Comments
 (0)