[C][Client] Convert integer/boolean to string for query parameter in request url (#6652)

This commit is contained in:
Hui Yu
2020-06-18 11:19:24 +08:00
committed by GitHub
parent 3ba0e05342
commit b86f6c8015
6 changed files with 53 additions and 7 deletions

View File

@@ -3,7 +3,7 @@
#include <ctype.h>
#include "{{classname}}.h"
#define MAX_NUMBER_LENGTH 16
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do {\
@@ -209,7 +209,7 @@ end:
// query parameters
{{^isListContainer}}
char *keyQuery_{{{paramName}}} = NULL;
{{#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}};
{{#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}};
keyValuePair_t *keyPairQuery_{{paramName}} = 0;
{{/isListContainer}}
if ({{paramName}})
@@ -219,9 +219,21 @@ end:
{{/isListContainer}}
{{^isListContainer}}
keyQuery_{{{paramName}}} = strdup("{{{baseName}}}");
{{#isInteger}}
valueQuery_{{{paramName}}} = calloc(1,MAX_NUMBER_LENGTH);
snprintf(valueQuery_{{{paramName}}}, MAX_NUMBER_LENGTH, "%d", {{{paramName}}});
{{/isInteger}}
{{#isBoolean}}
valueQuery_{{{paramName}}} = calloc(1,MAX_NUMBER_LENGTH);
snprintf(valueQuery_{{{paramName}}}, MAX_NUMBER_LENGTH, "%d", {{{paramName}}});
{{/isBoolean}}
{{^isInteger}}
{{^isBoolean}}
valueQuery_{{{paramName}}} = {{#isString}}{{^isEnum}}strdup({{/isEnum}}{{/isString}}({{{paramName}}}){{#isString}}{{^isEnum}}){{/isEnum}}{{/isString}};
{{/isBoolean}}
{{/isInteger}}
keyPairQuery_{{paramName}} = keyValuePair_create(keyQuery_{{{paramName}}}, {{#isEnum}}(void *)strdup({{{operationId}}}_{{enumName}}_ToString(
{{/isEnum}}{{^isString}}&{{/isString}}valueQuery_{{{paramName}}}{{#isEnum}})){{/isEnum}});
{{/isEnum}}{{^isString}}{{^isInteger}}{{^isBoolean}}&{{/isBoolean}}{{/isInteger}}{{/isString}}valueQuery_{{{paramName}}}{{#isEnum}})){{/isEnum}});
list_addElement(localVarQueryParameters,keyPairQuery_{{paramName}});
{{/isListContainer}}
}

View File

@@ -0,0 +1,34 @@
README.md
api/PetAPI.c
api/PetAPI.h
api/StoreAPI.c
api/StoreAPI.h
api/UserAPI.c
api/UserAPI.h
external/cJSON.c
external/cJSON.h
external/cJSON.licence
include/apiClient.h
include/binary.h
include/keyValuePair.h
include/list.h
libcurl.licence
model/api_response.c
model/api_response.h
model/category.c
model/category.h
model/object.c
model/object.h
model/order.c
model/order.h
model/pet.c
model/pet.h
model/tag.c
model/tag.h
model/user.c
model/user.h
src/apiClient.c
src/apiKey.c
src/binary.c
src/list.c
uncrustify-rules.cfg

View File

@@ -1 +1 @@
4.3.1-SNAPSHOT
5.0.0-SNAPSHOT

View File

@@ -3,7 +3,7 @@
#include <ctype.h>
#include "PetAPI.h"
#define MAX_NUMBER_LENGTH 16
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do {\

View File

@@ -3,7 +3,7 @@
#include <ctype.h>
#include "StoreAPI.h"
#define MAX_NUMBER_LENGTH 16
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do {\

View File

@@ -3,7 +3,7 @@
#include <ctype.h>
#include "UserAPI.h"
#define MAX_NUMBER_LENGTH 16
#define MAX_BUFFER_LENGTH 4096
#define intToStr(dst, src) \
do {\