Skip to content

Commit 26fb087

Browse files
committed
Fixed problem for different datatypes of paramName
1 parent ea7ca2d commit 26fb087

2 files changed

Lines changed: 335 additions & 298 deletions

File tree

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

Lines changed: 45 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@
77
{{/imports}}
88

99
#define MAX_BUFFER_LENGTH 4096
10-
#define vstr(s) str(s)
11-
#define str(s) #s
10+
#define int_to_str(dst,src) \
11+
do {\
12+
char dst[64];\
13+
snprintf(dst,64,"%ld",(long int)(src));\
14+
}while(0)
1215

1316
{{#operations}}
1417
{{#operation}}
@@ -21,21 +24,30 @@
2124
//
2225
{{/notes}}
2326
{{#returnType}}{{{.}}}_t{{/returnType}}{{^returnType}}void{{/returnType}} *{{{classname}}}_{{{operationId}}}(apiClient_t *apiClient{{#allParams}}, {{{dataType}}} {{paramName}}{{/allParams}}) {
24-
list_t *localVarQueryParameters,
25-
list_t *localVarHeaderParameters,
26-
list_t *localVarFormParameters,
27-
char *localVarBodyParameters,
27+
list_t *localVarQueryParameters,
28+
list_t *localVarHeaderParameters,
29+
list_t *localVarFormParameters,
30+
char *localVarBodyParameters,
2831
2932
// create the path
30-
char *localVarPath = malloc(MAX_BUFFER_LENGTH);
31-
snprintf(localVarPath, MAX_BUFFER_LENGTH, "{{{path}}}");
33+
char *localVarPath = malloc(MAX_BUFFER_LENGTH);
34+
snprintf(localVarPath, MAX_BUFFER_LENGTH, "{{{path}}}");
3235
3336
{{#pathParams}}
3437
// TODO path parameter {{paramName}} ({{baseName}}) not yet supported
3538
// TODO base path = {{{basePath}}}
3639
char* baseNameMod=malloc(strlen({{baseName}})+2); //baseNameMod free not yet implemented
3740
snprintf(baseNameMod,strlen(baseName)+3,"%s%s%s","{",{{baseName}},"}");
38-
str_replace(localVarPath,baseNameMod, vstr({{paramName}}));
41+
{{#paramName}}
42+
{{#isLong}}
43+
char buff[64];
44+
int_to_str(buf,{{paramName}});
45+
str_replace(localVarPath,baseNameMod,buff);
46+
{{/isLong}}
47+
{{#isString}}
48+
str_replace(localVarPath,baseNameMod,{{paramName}});
49+
{{/isString}}
50+
{{/paramName}}
3951
{{/pathParams}}
4052

4153
{{#headerParams}}
@@ -61,25 +73,25 @@
6173
localVarBodyParameters = cJSON_Print({{{paramName}}}JSONObject);
6274

6375
{{/bodyParam}}
64-
apiClient_invoke(apiClient,
65-
"pet",
66-
localVarPath,
67-
localVarQueryParameters,
68-
localVarHeaderParameters,
69-
localVarFormParameters,
70-
localVarBodyParameters,
71-
"{{{httpMethod}}}");
76+
apiClient_invoke(apiClient,
77+
"pet",
78+
localVarPath,
79+
localVarQueryParameters,
80+
localVarHeaderParameters,
81+
localVarFormParameters,
82+
localVarBodyParameters,
83+
"{{{httpMethod}}}");
7284

73-
free(apiClient->dataReceived);
74-
{{#allParams}}
75-
{{^bodyParam}}
76-
free({{{paramName}}}String);
77-
{{/bodyParam}}
78-
{{#bodyParam}}
85+
free(apiClient->dataReceived);
86+
{{#allParams}}
87+
{{^bodyParam}}
88+
free({{{paramName}}}String);
89+
{{/bodyParam}}
90+
{{#bodyParam}}
7991
free(localVarBodyParameters);
80-
cJSON_Delete()
81-
{{/bodyParam}}
82-
{{/allParams}}
92+
cJSON_Delete()
93+
{{/bodyParam}}
94+
{{/allParams}}
8395
{{#returnType}}
8496
localVar{{{returnType}}} = {{complexType}}_parseFromJSON(apiClient->dataReceived);
8597
if(localVar{{{returnType}}} == NULL) {
@@ -89,13 +101,15 @@
89101
cJSON_Delete(jsonObject);
90102
}
91103

92-
return localVar{{{returnType}}};
93-
{{/returnType}}
104+
return localVar{{{returnType}}};
105+
{{/returnType}}
94106
{{^returnType}}
95-
return;
96-
{{/returnType}}
107+
return;
108+
{{/returnType}}
97109

98110
}
99111

100112
{{/operation}}
101-
{{/operations}}
113+
{{/operations}}
114+
115+

0 commit comments

Comments
 (0)