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("^/|/$", "") +
|
||||
"\"");
|
||||
}
|
||||
|
||||
// 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) {
|
||||
imports.add(createMapping("import", "fmt"));
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ type {{classname}} struct {
|
||||
{{#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}}
|
||||
{{#isAdditionalPropertiesTrue}}
|
||||
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.
|
||||
type: string
|
||||
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:
|
||||
type: string
|
||||
default: '-efg'
|
||||
|
@ -1683,6 +1683,10 @@ components:
|
||||
to three digits following i.e. Image_01.
|
||||
pattern: "/^image_\\d{1,3}$/i"
|
||||
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:
|
||||
- byte
|
||||
- date
|
||||
|
@ -19,6 +19,7 @@ Name | Type | Description | Notes
|
||||
**Password** | **string** | |
|
||||
**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]
|
||||
**PatternWithBacktick** | Pointer to **string** | | [optional]
|
||||
|
||||
## Methods
|
||||
|
||||
@ -394,6 +395,31 @@ SetPatternWithDigitsAndDelimiter sets PatternWithDigitsAndDelimiter field to giv
|
||||
|
||||
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)
|
||||
|
||||
|
@ -39,6 +39,7 @@ type FormatTest struct {
|
||||
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.
|
||||
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{}
|
||||
}
|
||||
|
||||
@ -517,6 +518,38 @@ func (o *FormatTest) SetPatternWithDigitsAndDelimiter(v string) {
|
||||
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) {
|
||||
toSerialize,err := o.ToMap()
|
||||
if err != nil {
|
||||
@ -564,6 +597,9 @@ func (o FormatTest) ToMap() (map[string]interface{}, error) {
|
||||
if !IsNil(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 {
|
||||
toSerialize[key] = value
|
||||
@ -642,6 +678,7 @@ func (o *FormatTest) UnmarshalJSON(data []byte) (err error) {
|
||||
delete(additionalProperties, "password")
|
||||
delete(additionalProperties, "pattern_with_digits")
|
||||
delete(additionalProperties, "pattern_with_digits_and_delimiter")
|
||||
delete(additionalProperties, "pattern_with_backtick")
|
||||
o.AdditionalProperties = additionalProperties
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user