forked from loafle/openapi-generator-original
Better handling of backtick in pattern (#19358)
* use x-go-datatag in go client model template * add logic to handle backtick
This commit is contained in:
parent
cd02426648
commit
a6a75e3501
@ -786,7 +786,43 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
|
|||||||
cp.pattern.replace("\\", "\\\\").replaceAll("^/|/$", "") +
|
cp.pattern.replace("\\", "\\\\").replaceAll("^/|/$", "") +
|
||||||
"\"");
|
"\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// construct data tag in the template: x-go-datatag
|
||||||
|
// originl template
|
||||||
|
// `json:"{{{baseName}}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{{baseName}}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#withValidate}} validate:"{{validate}}"{{/withValidate}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}`
|
||||||
|
String goDataTag = "json:\"" + cp.baseName;
|
||||||
|
if (!cp.required) {
|
||||||
|
goDataTag += ",omitempty";
|
||||||
}
|
}
|
||||||
|
goDataTag += "\"";
|
||||||
|
|
||||||
|
if (withXml) {
|
||||||
|
goDataTag += " xml:" + "\"" + cp.baseName;
|
||||||
|
if (cp.isXmlAttribute) {
|
||||||
|
goDataTag += ",attr";
|
||||||
|
}
|
||||||
|
goDataTag += "\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
// {{#withValidate}} validate:"{{validate}}"{{/withValidate}}
|
||||||
|
if (Boolean.parseBoolean(String.valueOf(additionalProperties.getOrDefault("withValidate", "false")))) {
|
||||||
|
goDataTag += " validate:\"" + additionalProperties.getOrDefault("validate", "") + "\"";
|
||||||
|
}
|
||||||
|
|
||||||
|
// {{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}
|
||||||
|
if (StringUtils.isNotEmpty(String.valueOf(cp.vendorExtensions.getOrDefault("x-go-custom-tag", "")))) {
|
||||||
|
goDataTag += " " + cp.vendorExtensions.get("x-go-custom-tag");
|
||||||
|
}
|
||||||
|
|
||||||
|
// if it contains backtick, wrap with " instead
|
||||||
|
if (goDataTag.contains("`")) {
|
||||||
|
goDataTag = " \"" + goDataTag.replace("\"", "\\\"") + "\"";
|
||||||
|
} else {
|
||||||
|
goDataTag = " `" + goDataTag + "`";
|
||||||
|
}
|
||||||
|
cp.vendorExtensions.put("x-go-datatag", goDataTag);
|
||||||
|
}
|
||||||
|
|
||||||
if (this instanceof GoClientCodegen && model.isEnum) {
|
if (this instanceof GoClientCodegen && model.isEnum) {
|
||||||
imports.add(createMapping("import", "fmt"));
|
imports.add(createMapping("import", "fmt"));
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ type {{classname}} struct {
|
|||||||
{{#deprecated}}
|
{{#deprecated}}
|
||||||
// Deprecated
|
// Deprecated
|
||||||
{{/deprecated}}
|
{{/deprecated}}
|
||||||
{{name}} {{^required}}{{^isNullable}}{{^isArray}}{{^isFreeFormObject}}*{{/isFreeFormObject}}{{/isArray}}{{/isNullable}}{{/required}}{{{dataType}}} `json:"{{{baseName}}}{{^required}},omitempty{{/required}}"{{#withXml}} xml:"{{{baseName}}}{{#isXmlAttribute}},attr{{/isXmlAttribute}}"{{/withXml}}{{#withValidate}} validate:"{{validate}}"{{/withValidate}}{{#vendorExtensions.x-go-custom-tag}} {{{.}}}{{/vendorExtensions.x-go-custom-tag}}`
|
{{name}} {{^required}}{{^isNullable}}{{^isArray}}{{^isFreeFormObject}}*{{/isFreeFormObject}}{{/isArray}}{{/isNullable}}{{/required}}{{{dataType}}}{{{vendorExtensions.x-go-datatag}}}
|
||||||
{{/vars}}
|
{{/vars}}
|
||||||
{{#isAdditionalPropertiesTrue}}
|
{{#isAdditionalPropertiesTrue}}
|
||||||
AdditionalProperties map[string]interface{}
|
AdditionalProperties map[string]interface{}
|
||||||
|
@ -1729,6 +1729,9 @@ components:
|
|||||||
description: A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
|
description: A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
|
||||||
type: string
|
type: string
|
||||||
pattern: '/^image_\d{1,3}$/i'
|
pattern: '/^image_\d{1,3}$/i'
|
||||||
|
pattern_with_backtick:
|
||||||
|
type: string
|
||||||
|
pattern: "^$|^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
|
||||||
EnumClass:
|
EnumClass:
|
||||||
type: string
|
type: string
|
||||||
default: '-efg'
|
default: '-efg'
|
||||||
|
@ -1683,6 +1683,10 @@ components:
|
|||||||
to three digits following i.e. Image_01.
|
to three digits following i.e. Image_01.
|
||||||
pattern: "/^image_\\d{1,3}$/i"
|
pattern: "/^image_\\d{1,3}$/i"
|
||||||
type: string
|
type: string
|
||||||
|
pattern_with_backtick:
|
||||||
|
pattern: "^$|^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\\
|
||||||
|
.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
|
||||||
|
type: string
|
||||||
required:
|
required:
|
||||||
- byte
|
- byte
|
||||||
- date
|
- date
|
||||||
|
@ -19,6 +19,7 @@ Name | Type | Description | Notes
|
|||||||
**Password** | **string** | |
|
**Password** | **string** | |
|
||||||
**PatternWithDigits** | Pointer to **string** | A string that is a 10 digit number. Can have leading zeros. | [optional]
|
**PatternWithDigits** | Pointer to **string** | A string that is a 10 digit number. Can have leading zeros. | [optional]
|
||||||
**PatternWithDigitsAndDelimiter** | Pointer to **string** | A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01. | [optional]
|
**PatternWithDigitsAndDelimiter** | Pointer to **string** | A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01. | [optional]
|
||||||
|
**PatternWithBacktick** | Pointer to **string** | | [optional]
|
||||||
|
|
||||||
## Methods
|
## Methods
|
||||||
|
|
||||||
@ -394,6 +395,31 @@ SetPatternWithDigitsAndDelimiter sets PatternWithDigitsAndDelimiter field to giv
|
|||||||
|
|
||||||
HasPatternWithDigitsAndDelimiter returns a boolean if a field has been set.
|
HasPatternWithDigitsAndDelimiter returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
### GetPatternWithBacktick
|
||||||
|
|
||||||
|
`func (o *FormatTest) GetPatternWithBacktick() string`
|
||||||
|
|
||||||
|
GetPatternWithBacktick returns the PatternWithBacktick field if non-nil, zero value otherwise.
|
||||||
|
|
||||||
|
### GetPatternWithBacktickOk
|
||||||
|
|
||||||
|
`func (o *FormatTest) GetPatternWithBacktickOk() (*string, bool)`
|
||||||
|
|
||||||
|
GetPatternWithBacktickOk returns a tuple with the PatternWithBacktick field if it's non-nil, zero value otherwise
|
||||||
|
and a boolean to check if the value has been set.
|
||||||
|
|
||||||
|
### SetPatternWithBacktick
|
||||||
|
|
||||||
|
`func (o *FormatTest) SetPatternWithBacktick(v string)`
|
||||||
|
|
||||||
|
SetPatternWithBacktick sets PatternWithBacktick field to given value.
|
||||||
|
|
||||||
|
### HasPatternWithBacktick
|
||||||
|
|
||||||
|
`func (o *FormatTest) HasPatternWithBacktick() bool`
|
||||||
|
|
||||||
|
HasPatternWithBacktick returns a boolean if a field has been set.
|
||||||
|
|
||||||
|
|
||||||
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ type FormatTest struct {
|
|||||||
PatternWithDigits *string `json:"pattern_with_digits,omitempty" validate:"regexp=^\\\\d{10}$"`
|
PatternWithDigits *string `json:"pattern_with_digits,omitempty" validate:"regexp=^\\\\d{10}$"`
|
||||||
// A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
|
// A string starting with 'image_' (case insensitive) and one to three digits following i.e. Image_01.
|
||||||
PatternWithDigitsAndDelimiter *string `json:"pattern_with_digits_and_delimiter,omitempty" validate:"regexp=^image_\\\\d{1,3}$/i"`
|
PatternWithDigitsAndDelimiter *string `json:"pattern_with_digits_and_delimiter,omitempty" validate:"regexp=^image_\\\\d{1,3}$/i"`
|
||||||
|
PatternWithBacktick *string "json:\"pattern_with_backtick,omitempty\" validate:\"regexp=^$|^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$\""
|
||||||
AdditionalProperties map[string]interface{}
|
AdditionalProperties map[string]interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -517,6 +518,38 @@ func (o *FormatTest) SetPatternWithDigitsAndDelimiter(v string) {
|
|||||||
o.PatternWithDigitsAndDelimiter = &v
|
o.PatternWithDigitsAndDelimiter = &v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetPatternWithBacktick returns the PatternWithBacktick field value if set, zero value otherwise.
|
||||||
|
func (o *FormatTest) GetPatternWithBacktick() string {
|
||||||
|
if o == nil || IsNil(o.PatternWithBacktick) {
|
||||||
|
var ret string
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
return *o.PatternWithBacktick
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPatternWithBacktickOk returns a tuple with the PatternWithBacktick field value if set, nil otherwise
|
||||||
|
// and a boolean to check if the value has been set.
|
||||||
|
func (o *FormatTest) GetPatternWithBacktickOk() (*string, bool) {
|
||||||
|
if o == nil || IsNil(o.PatternWithBacktick) {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
return o.PatternWithBacktick, true
|
||||||
|
}
|
||||||
|
|
||||||
|
// HasPatternWithBacktick returns a boolean if a field has been set.
|
||||||
|
func (o *FormatTest) HasPatternWithBacktick() bool {
|
||||||
|
if o != nil && !IsNil(o.PatternWithBacktick) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPatternWithBacktick gets a reference to the given string and assigns it to the PatternWithBacktick field.
|
||||||
|
func (o *FormatTest) SetPatternWithBacktick(v string) {
|
||||||
|
o.PatternWithBacktick = &v
|
||||||
|
}
|
||||||
|
|
||||||
func (o FormatTest) MarshalJSON() ([]byte, error) {
|
func (o FormatTest) MarshalJSON() ([]byte, error) {
|
||||||
toSerialize,err := o.ToMap()
|
toSerialize,err := o.ToMap()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -564,6 +597,9 @@ func (o FormatTest) ToMap() (map[string]interface{}, error) {
|
|||||||
if !IsNil(o.PatternWithDigitsAndDelimiter) {
|
if !IsNil(o.PatternWithDigitsAndDelimiter) {
|
||||||
toSerialize["pattern_with_digits_and_delimiter"] = o.PatternWithDigitsAndDelimiter
|
toSerialize["pattern_with_digits_and_delimiter"] = o.PatternWithDigitsAndDelimiter
|
||||||
}
|
}
|
||||||
|
if !IsNil(o.PatternWithBacktick) {
|
||||||
|
toSerialize["pattern_with_backtick"] = o.PatternWithBacktick
|
||||||
|
}
|
||||||
|
|
||||||
for key, value := range o.AdditionalProperties {
|
for key, value := range o.AdditionalProperties {
|
||||||
toSerialize[key] = value
|
toSerialize[key] = value
|
||||||
@ -642,6 +678,7 @@ func (o *FormatTest) UnmarshalJSON(data []byte) (err error) {
|
|||||||
delete(additionalProperties, "password")
|
delete(additionalProperties, "password")
|
||||||
delete(additionalProperties, "pattern_with_digits")
|
delete(additionalProperties, "pattern_with_digits")
|
||||||
delete(additionalProperties, "pattern_with_digits_and_delimiter")
|
delete(additionalProperties, "pattern_with_digits_and_delimiter")
|
||||||
|
delete(additionalProperties, "pattern_with_backtick")
|
||||||
o.AdditionalProperties = additionalProperties
|
o.AdditionalProperties = additionalProperties
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user