forked from loafle/openapi-generator-original
Issue #2564 : Query structs now export their fields
This commit is contained in:
parent
3aeef74dd0
commit
2f3897f6d5
@ -4,6 +4,7 @@ import io.swagger.codegen.*;
|
|||||||
import io.swagger.models.properties.ArrayProperty;
|
import io.swagger.models.properties.ArrayProperty;
|
||||||
import io.swagger.models.properties.MapProperty;
|
import io.swagger.models.properties.MapProperty;
|
||||||
import io.swagger.models.properties.Property;
|
import io.swagger.models.properties.Property;
|
||||||
|
import io.swagger.models.parameters.Parameter;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -223,6 +224,36 @@ public class GoClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
return toModelName(name);
|
return toModelName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overrides postProcessParameter to add a vendor extension "x-exportParamName".
|
||||||
|
* This is useful when paramName starts with a lowercase letter, but we need that
|
||||||
|
* param to be exportable (starts with an Uppercase letter).
|
||||||
|
*
|
||||||
|
* @param parameter CodegenParameter object to be processed.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void postProcessParameter(CodegenParameter parameter){
|
||||||
|
|
||||||
|
// Give the base class a chance to process
|
||||||
|
super.postProcessParameter(parameter);
|
||||||
|
|
||||||
|
char firstChar = parameter.paramName.charAt(0);
|
||||||
|
|
||||||
|
if (Character.isUpperCase(firstChar)) {
|
||||||
|
// First char is already uppercase, just use paramName.
|
||||||
|
parameter.vendorExtensions.put("x-exportParamName", parameter.paramName);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// It's a lowercase first char, let's convert it to uppercase
|
||||||
|
StringBuilder sb = new StringBuilder(parameter.paramName);
|
||||||
|
sb.setCharAt(0, Character.toUpperCase(firstChar));
|
||||||
|
parameter.vendorExtensions.put("x-exportParamName", sb.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTypeDeclaration(Property p) {
|
public String getTypeDeclaration(Property p) {
|
||||||
if(p instanceof ArrayProperty) {
|
if(p instanceof ArrayProperty) {
|
||||||
|
@ -81,10 +81,10 @@ func (a {{classname}}) {{nickname}} ({{#allParams}}{{paramName}} {{{dataType}}}{
|
|||||||
}
|
}
|
||||||
|
|
||||||
{{#hasQueryParams}} type QueryParams struct {
|
{{#hasQueryParams}} type QueryParams struct {
|
||||||
{{#queryParams}}{{paramName}} {{dataType}} `url:"{{baseName}},omitempty"`
|
{{#queryParams}}{{vendorExtensions.x-exportParamName}} {{dataType}} `url:"{{baseName}},omitempty"`
|
||||||
{{/queryParams}}
|
{{/queryParams}}
|
||||||
}
|
}
|
||||||
_sling = _sling.QueryStruct(&QueryParams{ {{#queryParams}}{{paramName}}: {{paramName}}{{#hasMore}},{{/hasMore}}{{/queryParams}} })
|
_sling = _sling.QueryStruct(&QueryParams{ {{#queryParams}}{{vendorExtensions.x-exportParamName}}: {{paramName}}{{#hasMore}},{{/hasMore}}{{/queryParams}} })
|
||||||
{{/hasQueryParams}}
|
{{/hasQueryParams}}
|
||||||
// accept header
|
// accept header
|
||||||
accepts := []string { {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }
|
accepts := []string { {{#produces}}"{{mediaType}}"{{#hasMore}}, {{/hasMore}}{{/produces}} }
|
||||||
@ -96,10 +96,10 @@ func (a {{classname}}) {{nickname}} ({{#allParams}}{{paramName}} {{{dataType}}}{
|
|||||||
_sling = _sling.Set("{{baseName}}", {{paramName}})
|
_sling = _sling.Set("{{baseName}}", {{paramName}})
|
||||||
{{/headerParams}}{{/hasHeaderParams}}
|
{{/headerParams}}{{/hasHeaderParams}}
|
||||||
{{#hasFormParams}} type FormParams struct {
|
{{#hasFormParams}} type FormParams struct {
|
||||||
{{#formParams}} {{paramName}} {{dataType}} `url:"{{baseName}},omitempty"`
|
{{#formParams}} {{vendorExtensions.x-exportParamName}} {{dataType}} `url:"{{baseName}},omitempty"`
|
||||||
{{/formParams}}
|
{{/formParams}}
|
||||||
}
|
}
|
||||||
_sling = _sling.BodyForm(&FormParams{ {{#formParams}}{{paramName}}: {{paramName}}{{#hasMore}},{{/hasMore}}{{/formParams}} })
|
_sling = _sling.BodyForm(&FormParams{ {{#formParams}}{{vendorExtensions.x-exportParamName}}: {{paramName}}{{#hasMore}},{{/hasMore}}{{/formParams}} })
|
||||||
{{/hasFormParams}}
|
{{/hasFormParams}}
|
||||||
{{#hasBodyParam}}{{#bodyParams}}// body params
|
{{#hasBodyParam}}{{#bodyParams}}// body params
|
||||||
_sling = _sling.BodyJSON({{paramName}})
|
_sling = _sling.BodyJSON({{paramName}})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user