forked from loafle/openapi-generator-original
[C][Client] Support custom data type e.g.IntOrString (#11074)
This commit is contained in:
@@ -136,6 +136,11 @@ char* {{name}}{{classname}}_ToString({{projectName}}_{{classVarName}}_{{enumName
|
||||
{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
{{datatype}} *{{name}}{{^-last}},{{/-last}}
|
||||
{{/isUuid}}
|
||||
@@ -220,6 +225,14 @@ void {{classname}}_free({{classname}}_t *{{classname}}) {
|
||||
}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
{{{complexType}}}_free({{{classname}}}->{{{name}}});
|
||||
{{classname}}->{{name}} = NULL;
|
||||
}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
if ({{{classname}}}->{{{name}}}) {
|
||||
free({{{classname}}}->{{{name}}});
|
||||
@@ -398,6 +411,18 @@ cJSON *{{classname}}_convertToJSON({{classname}}_t *{{classname}}) {
|
||||
}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
cJSON *{{{name}}}_local_JSON = {{complexType}}_convertToJSON({{{classname}}}->{{{name}}});
|
||||
if({{{name}}}_local_JSON == NULL) {
|
||||
goto fail; // custom
|
||||
}
|
||||
cJSON_AddItemToObject(item, "{{{baseName}}}", {{{name}}}_local_JSON);
|
||||
if(item->child == NULL) {
|
||||
goto fail;
|
||||
}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
if(cJSON_AddStringToObject(item, "{{{baseName}}}", {{{classname}}}->{{{name}}}) == NULL) {
|
||||
goto fail; //uuid
|
||||
@@ -528,6 +553,7 @@ fail:
|
||||
{{classname}}_t *{{classname}}_local_var = NULL;
|
||||
|
||||
{{#vars}}
|
||||
{{^isContainer}}
|
||||
{{^isPrimitiveType}}
|
||||
{{#isModel}}
|
||||
{{^isEnum}}
|
||||
@@ -536,7 +562,15 @@ fail:
|
||||
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
// define the local variable for {{{classname}}}->{{{name}}}
|
||||
{{complexType}}_t *{{name}}_local_nonprim = NULL;
|
||||
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{/isPrimitiveType}}
|
||||
{{/isContainer}}
|
||||
{{/vars}}
|
||||
{{#vars}}
|
||||
// {{{classname}}}->{{{name}}}
|
||||
@@ -629,6 +663,12 @@ fail:
|
||||
{{{name}}}_local_nonprim = {{complexType}}{{#isFreeFormObject}}object{{/isFreeFormObject}}_parseFromJSON({{{name}}}); //nonprimitive
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
{{^required}}if ({{{name}}}) { {{/required}}
|
||||
{{{name}}}_local_nonprim = {{complexType}}_parseFromJSON({{{name}}}); //custom
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
{{^required}}if ({{{name}}}) { {{/required}}
|
||||
if(!cJSON_IsString({{{name}}}))
|
||||
@@ -779,6 +819,11 @@ fail:
|
||||
{{^required}}{{{name}}} ? {{/required}}{{{name}}}_local_nonprim{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
{{^required}}{{{name}}} ? {{/required}}{{{name}}}_local_nonprim{{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
{{^required}}{{{name}}} ? {{/required}}strdup({{{name}}}->valuestring){{^required}} : NULL{{/required}}{{^-last}},{{/-last}}
|
||||
{{/isUuid}}
|
||||
@@ -849,6 +894,14 @@ end:
|
||||
}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
if ({{{name}}}_local_nonprim) {
|
||||
{{complexType}}_free({{{name}}}_local_nonprim);
|
||||
{{{name}}}_local_nonprim = NULL;
|
||||
}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{/isPrimitiveType}}
|
||||
{{/isContainer}}
|
||||
{{/vars}}
|
||||
|
||||
@@ -86,6 +86,11 @@ typedef struct {{classname}}_t {
|
||||
struct {{datatype}}_t *{{name}}; //model
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
{{datatype}}_t *{{name}}; // custom
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
{{datatype}} *{{name}}; // uuid
|
||||
{{/isUuid}}
|
||||
@@ -156,6 +161,11 @@ typedef struct {{classname}}_t {
|
||||
{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
|
||||
{{/isEnum}}
|
||||
{{/isModel}}
|
||||
{{^isModel}}
|
||||
{{^isFreeFormObject}}
|
||||
{{datatype}}_t *{{name}}{{^-last}},{{/-last}}
|
||||
{{/isFreeFormObject}}
|
||||
{{/isModel}}
|
||||
{{#isUuid}}
|
||||
{{datatype}} *{{name}}{{^-last}},{{/-last}}
|
||||
{{/isUuid}}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
Name | Type | Description | Notes
|
||||
------------ | ------------- | ------------- | -------------
|
||||
{{#vars}}
|
||||
**{{name}}** | {{^isContainer}}{{^isPrimitiveType}}{{#isModel}}{{#isEnum}}**{{projectName}}_{{classVarName}}_{{enumName}}_e**{{/isEnum}}{{^isEnum}}[**{{datatype}}_t**]({{complexType}}.md) \*{{/isEnum}}{{/isModel}}{{#isUuid}}**{{datatype}} \***{{/isUuid}}{{#isEmail}}**{{datatype}} \***{{/isEmail}}{{#isFreeFormObject}}[**{{datatype}}_t**]({{complexType}}.md) \*{{/isFreeFormObject}}{{/isPrimitiveType}}{{#isPrimitiveType}}{{#isNumeric}}**{{datatype}}**{{/isNumeric}}{{#isBoolean}}**{{datatype}}**{{/isBoolean}}{{#isEnum}}{{#isString}}**{{projectName}}_{{classVarName}}_{{enumName}}_e**{{/isString}}{{/isEnum}}{{^isEnum}}{{#isString}}**{{datatype}} \***{{/isString}}{{/isEnum}}{{#isByteArray}}**{{datatype}} \***{{/isByteArray}}{{#isBinary}}**{{datatype}}**{{/isBinary}}{{#isDate}}**{{datatype}} \***{{/isDate}}{{#isDateTime}}**{{datatype}} \***{{/isDateTime}}{{/isPrimitiveType}}{{/isContainer}}{{#isContainer}}{{#isArray}}{{#isPrimitiveType}}**{{datatype}}_t \***{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{datatype}}_t**]({{complexType}}.md) \*{{/isPrimitiveType}}{{/isArray}}{{#isMap}}**{{datatype}}**{{/isMap}}{{/isContainer}} | {{description}} | {{^required}}[optional] {{/required}}{{#isReadOnly}}[readonly] {{/isReadOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}}
|
||||
**{{name}}** | {{^isContainer}}{{^isPrimitiveType}}{{#isModel}}{{#isEnum}}**{{projectName}}_{{classVarName}}_{{enumName}}_e**{{/isEnum}}{{^isEnum}}[**{{datatype}}_t**]({{complexType}}.md) \*{{/isEnum}}{{/isModel}}{{^isModel}}{{^isFreeFormObject}}**{{datatype}}_t \***{{/isFreeFormObject}}{{/isModel}}{{#isUuid}}**{{datatype}} \***{{/isUuid}}{{#isEmail}}**{{datatype}} \***{{/isEmail}}{{#isFreeFormObject}}[**{{datatype}}_t**]({{complexType}}.md) \*{{/isFreeFormObject}}{{/isPrimitiveType}}{{#isPrimitiveType}}{{#isNumeric}}**{{datatype}}**{{/isNumeric}}{{#isBoolean}}**{{datatype}}**{{/isBoolean}}{{#isEnum}}{{#isString}}**{{projectName}}_{{classVarName}}_{{enumName}}_e**{{/isString}}{{/isEnum}}{{^isEnum}}{{#isString}}**{{datatype}} \***{{/isString}}{{/isEnum}}{{#isByteArray}}**{{datatype}} \***{{/isByteArray}}{{#isBinary}}**{{datatype}}**{{/isBinary}}{{#isDate}}**{{datatype}} \***{{/isDate}}{{#isDateTime}}**{{datatype}} \***{{/isDateTime}}{{/isPrimitiveType}}{{/isContainer}}{{#isContainer}}{{#isArray}}{{#isPrimitiveType}}**{{datatype}}_t \***{{/isPrimitiveType}}{{^isPrimitiveType}}[**{{datatype}}_t**]({{complexType}}.md) \*{{/isPrimitiveType}}{{/isArray}}{{#isMap}}**{{datatype}}**{{/isMap}}{{/isContainer}} | {{description}} | {{^required}}[optional] {{/required}}{{#isReadOnly}}[readonly] {{/isReadOnly}}{{#defaultValue}}[default to {{{.}}}]{{/defaultValue}}
|
||||
{{/vars}}
|
||||
|
||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||
|
||||
Reference in New Issue
Block a user