Skip to content

Commit b86f6c8

Browse files
authored
[C][Client] Convert integer/boolean to string for query parameter in request url (#6652)
1 parent 3ba0e05 commit b86f6c8

File tree

6 files changed

+53
-7
lines changed

6 files changed

+53
-7
lines changed

modules/openapi-generator/src/main/resources/C-libcurl/api-body.mustache

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <ctype.h>
44
#include "{{classname}}.h"
55

6-
6+
#define MAX_NUMBER_LENGTH 16
77
#define MAX_BUFFER_LENGTH 4096
88
#define intToStr(dst, src) \
99
do {\
@@ -209,7 +209,7 @@ end:
209209
// query parameters
210210
{{^isListContainer}}
211211
char *keyQuery_{{{paramName}}} = NULL;
212-
{{#isPrimitiveType}}{{#isNumber}}{{{dataType}}}{{/isNumber}}{{#isLong}}{{{dataType}}}{{/isLong}}{{#isInteger}}{{{dataType}}}{{/isInteger}}{{#isDouble}}{{{dataType}}}{{/isDouble}}{{#isFloat}}{{{dataType}}}{{/isFloat}}{{#isBoolean}}{{{dataType}}}{{/isBoolean}}{{#isEnum}}{{#isString}}{{projectName}}_{{operationId}}_{{baseName}}_e{{/isString}}{{/isEnum}}{{^isEnum}}{{#isString}}{{{dataType}}} *{{/isString}}{{/isEnum}}{{#isByteArray}}{{{dataType}}}{{/isByteArray}}{{#isDate}}{{{dataType}}}{{/isDate}}{{#isDateTime}}{{{dataType}}}{{/isDateTime}}{{#isFile}}{{{dataType}}}{{/isFile}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{^isEnum}}{{{dataType}}}_t *{{/isEnum}}{{/isModel}}{{^isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{/isModel}}{{#isUuid}}{{dataType}} *{{/isUuid}}{{#isEmail}}{{dataType}}{{/isEmail}}{{/isPrimitiveType}} valueQuery_{{{paramName}}} {{#isString}}{{^isEnum}}= NULL{{/isEnum}}{{/isString}};
212+
{{#isPrimitiveType}}{{#isNumber}}{{{dataType}}}{{/isNumber}}{{#isLong}}{{{dataType}}}{{/isLong}}{{#isInteger}}char *{{/isInteger}}{{#isDouble}}{{{dataType}}}{{/isDouble}}{{#isFloat}}{{{dataType}}}{{/isFloat}}{{#isBoolean}}char *{{/isBoolean}}{{#isEnum}}{{#isString}}{{projectName}}_{{operationId}}_{{baseName}}_e{{/isString}}{{/isEnum}}{{^isEnum}}{{#isString}}{{{dataType}}} *{{/isString}}{{/isEnum}}{{#isByteArray}}{{{dataType}}}{{/isByteArray}}{{#isDate}}{{{dataType}}}{{/isDate}}{{#isDateTime}}{{{dataType}}}{{/isDateTime}}{{#isFile}}{{{dataType}}}{{/isFile}}{{/isPrimitiveType}}{{^isPrimitiveType}}{{#isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{^isEnum}}{{{dataType}}}_t *{{/isEnum}}{{/isModel}}{{^isModel}}{{#isEnum}}{{datatypeWithEnum}}_e{{/isEnum}}{{/isModel}}{{#isUuid}}{{dataType}} *{{/isUuid}}{{#isEmail}}{{dataType}}{{/isEmail}}{{/isPrimitiveType}} valueQuery_{{{paramName}}} {{#isString}}{{^isEnum}}= NULL{{/isEnum}}{{/isString}}{{#isInteger}}= NULL{{/isInteger}};
213213
keyValuePair_t *keyPairQuery_{{paramName}} = 0;
214214
{{/isListContainer}}
215215
if ({{paramName}})
@@ -219,9 +219,21 @@ end:
219219
{{/isListContainer}}
220220
{{^isListContainer}}
221221
keyQuery_{{{paramName}}} = strdup("{{{baseName}}}");
222+
{{#isInteger}}
223+
valueQuery_{{{paramName}}} = calloc(1,MAX_NUMBER_LENGTH);
224+
snprintf(valueQuery_{{{paramName}}}, MAX_NUMBER_LENGTH, "%d", {{{paramName}}});
225+
{{/isInteger}}
226+
{{#isBoolean}}
227+
valueQuery_{{{paramName}}} = calloc(1,MAX_NUMBER_LENGTH);
228+
snprintf(valueQuery_{{{paramName}}}, MAX_NUMBER_LENGTH, "%d", {{{paramName}}});
229+
{{/isBoolean}}
230+
{{^isInteger}}
231+
{{^isBoolean}}
222232
valueQuery_{{{paramName}}} = {{#isString}}{{^isEnum}}strdup({{/isEnum}}{{/isString}}({{{paramName}}}){{#isString}}{{^isEnum}}){{/isEnum}}{{/isString}};
233+
{{/isBoolean}}
234+
{{/isInteger}}
223235
keyPairQuery_{{paramName}} = keyValuePair_create(keyQuery_{{{paramName}}}, {{#isEnum}}(void *)strdup({{{operationId}}}_{{enumName}}_ToString(
224-
{{/isEnum}}{{^isString}}&{{/isString}}valueQuery_{{{paramName}}}{{#isEnum}})){{/isEnum}});
236+
{{/isEnum}}{{^isString}}{{^isInteger}}{{^isBoolean}}&{{/isBoolean}}{{/isInteger}}{{/isString}}valueQuery_{{{paramName}}}{{#isEnum}})){{/isEnum}});
225237
list_addElement(localVarQueryParameters,keyPairQuery_{{paramName}});
226238
{{/isListContainer}}
227239
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
README.md
2+
api/PetAPI.c
3+
api/PetAPI.h
4+
api/StoreAPI.c
5+
api/StoreAPI.h
6+
api/UserAPI.c
7+
api/UserAPI.h
8+
external/cJSON.c
9+
external/cJSON.h
10+
external/cJSON.licence
11+
include/apiClient.h
12+
include/binary.h
13+
include/keyValuePair.h
14+
include/list.h
15+
libcurl.licence
16+
model/api_response.c
17+
model/api_response.h
18+
model/category.c
19+
model/category.h
20+
model/object.c
21+
model/object.h
22+
model/order.c
23+
model/order.h
24+
model/pet.c
25+
model/pet.h
26+
model/tag.c
27+
model/tag.h
28+
model/user.c
29+
model/user.h
30+
src/apiClient.c
31+
src/apiKey.c
32+
src/binary.c
33+
src/list.c
34+
uncrustify-rules.cfg
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
4.3.1-SNAPSHOT
1+
5.0.0-SNAPSHOT

samples/client/petstore/c/api/PetAPI.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <ctype.h>
44
#include "PetAPI.h"
55

6-
6+
#define MAX_NUMBER_LENGTH 16
77
#define MAX_BUFFER_LENGTH 4096
88
#define intToStr(dst, src) \
99
do {\

samples/client/petstore/c/api/StoreAPI.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <ctype.h>
44
#include "StoreAPI.h"
55

6-
6+
#define MAX_NUMBER_LENGTH 16
77
#define MAX_BUFFER_LENGTH 4096
88
#define intToStr(dst, src) \
99
do {\

samples/client/petstore/c/api/UserAPI.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include <ctype.h>
44
#include "UserAPI.h"
55

6-
6+
#define MAX_NUMBER_LENGTH 16
77
#define MAX_BUFFER_LENGTH 4096
88
#define intToStr(dst, src) \
99
do {\

0 commit comments

Comments
 (0)