[Go] Set Default Values for Required Variables when a default is defined (#19232)

* use default values for required vars when available

* update tests to existing config file

* cleanup OAS test

* Remove setting value in Get.

* Use Pascal Case for variable naming in Getter Function

* add a CLI option

* add a CLI option

* add a CLI option
This commit is contained in:
Vikrant Balyan 2024-07-30 16:02:54 +05:30 committed by GitHub
parent 753502c255
commit 5d48d224d9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
38 changed files with 395 additions and 14 deletions

View File

@ -15,6 +15,7 @@ additionalProperties:
packageName: petstore packageName: petstore
disallowAdditionalPropertiesIfNotPresent: false disallowAdditionalPropertiesIfNotPresent: false
generateInterfaces: true generateInterfaces: true
useDefaultValuesForRequiredVars: "true"
enumNameMappings: enumNameMappings:
delivered: SHIPPED delivered: SHIPPED

View File

@ -29,6 +29,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|packageVersion|Go package version.| |1.0.0| |packageVersion|Go package version.| |1.0.0|
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false| |prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|structPrefix|whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts| |false| |structPrefix|whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts| |false|
|useDefaultValuesForRequiredVars|Use default values for required variables when available| |false|
|useOneOfDiscriminatorLookup|Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped.| |false| |useOneOfDiscriminatorLookup|Use the discriminator's mapping in oneOf to speed up the model lookup. IMPORTANT: Validation (e.g. one and only one match in oneOf's schemas) will be skipped.| |false|
|withAWSV4Signature|whether to include AWS v4 signature support| |false| |withAWSV4Signature|whether to include AWS v4 signature support| |false|
|withGoMod|Generate go.mod and go.sum| |true| |withGoMod|Generate go.mod and go.sum| |true|

View File

@ -451,4 +451,6 @@ public class CodegenConstants {
public static final String MAX_ATTEMPTS_FOR_RETRY = "maxAttemptsForRetry"; public static final String MAX_ATTEMPTS_FOR_RETRY = "maxAttemptsForRetry";
public static final String WAIT_TIME_OF_THREAD = "waitTimeMillis"; public static final String WAIT_TIME_OF_THREAD = "waitTimeMillis";
public static final String USE_DEFAULT_VALUES_FOR_REQUIRED_VARS = "useDefaultValuesForRequiredVars";
} }

View File

@ -58,6 +58,8 @@ public abstract class AbstractGoCodegen extends DefaultCodegen implements Codege
protected boolean generateMarshalJSON = true; protected boolean generateMarshalJSON = true;
@Setter @Setter
protected boolean generateUnmarshalJSON = true; protected boolean generateUnmarshalJSON = true;
@Setter
protected boolean useDefaultValuesForRequiredVars = false;
@Setter @Setter
protected String packageName = "openapi"; protected String packageName = "openapi";

View File

@ -55,6 +55,7 @@ public class GoClientCodegen extends AbstractGoCodegen {
public static final String GENERATE_INTERFACES = "generateInterfaces"; public static final String GENERATE_INTERFACES = "generateInterfaces";
public static final String MODEL_FILE_FOLDER = "modelFileFolder"; public static final String MODEL_FILE_FOLDER = "modelFileFolder";
public static final String WITH_GO_MOD = "withGoMod"; public static final String WITH_GO_MOD = "withGoMod";
public static final String USE_DEFAULT_VALUES_FOR_REQUIRED_VARS = "useDefaultValuesForRequiredVars";
@Setter protected String goImportAlias = "openapiclient"; @Setter protected String goImportAlias = "openapiclient";
protected boolean isGoSubmodule = false; protected boolean isGoSubmodule = false;
@Setter protected boolean useOneOfDiscriminatorLookup = false; // use oneOf discriminator's mapping for model lookup @Setter protected boolean useOneOfDiscriminatorLookup = false; // use oneOf discriminator's mapping for model lookup
@ -126,6 +127,7 @@ public class GoClientCodegen extends AbstractGoCodegen {
cliOptions.add(CliOption.newBoolean(STRUCT_PREFIX, "whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts")); cliOptions.add(CliOption.newBoolean(STRUCT_PREFIX, "whether to prefix struct with the class name. e.g. DeletePetOpts => PetApiDeletePetOpts"));
cliOptions.add(CliOption.newBoolean(WITH_AWSV4_SIGNATURE, "whether to include AWS v4 signature support")); cliOptions.add(CliOption.newBoolean(WITH_AWSV4_SIGNATURE, "whether to include AWS v4 signature support"));
cliOptions.add(CliOption.newBoolean(GENERATE_INTERFACES, "Generate interfaces for api classes")); cliOptions.add(CliOption.newBoolean(GENERATE_INTERFACES, "Generate interfaces for api classes"));
cliOptions.add(CliOption.newBoolean(USE_DEFAULT_VALUES_FOR_REQUIRED_VARS, "Use default values for required variables when available"));
// option to change the order of form/body parameter // option to change the order of form/body parameter
cliOptions.add(CliOption.newBoolean( cliOptions.add(CliOption.newBoolean(
@ -246,6 +248,11 @@ public class GoClientCodegen extends AbstractGoCodegen {
additionalProperties.put(GENERATE_INTERFACES, generateInterfaces); additionalProperties.put(GENERATE_INTERFACES, generateInterfaces);
} }
if (additionalProperties.containsKey(USE_DEFAULT_VALUES_FOR_REQUIRED_VARS)) {
setUseDefaultValuesForRequiredVars(Boolean.parseBoolean(additionalProperties.get(USE_DEFAULT_VALUES_FOR_REQUIRED_VARS).toString()));
additionalProperties.put(USE_DEFAULT_VALUES_FOR_REQUIRED_VARS, useDefaultValuesForRequiredVars);
}
// Generate the 'signing.py' module, but only if the 'HTTP signature' security scheme is specified in the OAS. // Generate the 'signing.py' module, but only if the 'HTTP signature' security scheme is specified in the OAS.
Map<String, SecurityScheme> securitySchemeMap = openAPI != null ? Map<String, SecurityScheme> securitySchemeMap = openAPI != null ?
(openAPI.getComponents() != null ? openAPI.getComponents().getSecuritySchemes() : null) : null; (openAPI.getComponents() != null ? openAPI.getComponents().getSecuritySchemes() : null) : null;

View File

@ -168,6 +168,18 @@ func (o *{{classname}}) Set{{name}}(v {{vendorExtensions.x-go-base-type}}) {
{{/isNullable}} {{/isNullable}}
} }
{{#useDefaultValuesForRequiredVars}}
{{^isReadOnly}}
{{#defaultValue}}
// GetDefault{{baseName}} function assigns the default value {{defaultValue}} to the {{name}} field
// of the {{classname}} struct and returns the {{{defaultValue}}}.
func (o *{{classname}}) GetDefault{{nameInPascalCase}}() interface{} {
return {{{defaultValue}}}
}
{{/defaultValue}}
{{/isReadOnly}}
{{/useDefaultValuesForRequiredVars}}
{{/required}} {{/required}}
{{^required}} {{^required}}
// Get{{name}} returns the {{name}} field value if set, zero value otherwise{{#isNullable}} (both if not set or set to explicit null){{/isNullable}}. // Get{{name}} returns the {{name}} field value if set, zero value otherwise{{#isNullable}} (both if not set or set to explicit null){{/isNullable}}.
@ -318,6 +330,15 @@ func (o {{classname}}) ToMap() (map[string]interface{}, error) {
{{! if argument is not nullable, don't set it if it is nil}} {{! if argument is not nullable, don't set it if it is nil}}
{{^isNullable}} {{^isNullable}}
{{#required}} {{#required}}
{{#useDefaultValuesForRequiredVars}}
{{^isReadOnly}}
{{#defaultValue}}
if _, exists := toSerialize["{{{baseName}}}"]; !exists {
toSerialize["{{{baseName}}}"] = o.GetDefault{{nameInPascalCase}}()
}
{{/defaultValue}}
{{/isReadOnly}}
{{/useDefaultValuesForRequiredVars}}
toSerialize["{{{baseName}}}"] = o.{{name}} toSerialize["{{{baseName}}}"] = o.{{name}}
{{/required}} {{/required}}
{{^required}} {{^required}}
@ -356,6 +377,20 @@ func (o *{{{classname}}}) UnmarshalJSON(data []byte) (err error) {
{{/requiredVars}} {{/requiredVars}}
} }
{{#useDefaultValuesForRequiredVars}}
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
{{#requiredVars}}
{{#defaultValue}}
{{^isReadOnly}}
"{{baseName}}": o.GetDefault{{nameInPascalCase}},
{{/isReadOnly}}
{{/defaultValue}}
{{/requiredVars}}
}
var defaultValueApplied bool
{{/useDefaultValuesForRequiredVars}}
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -365,11 +400,30 @@ func (o *{{{classname}}}) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
{{#useDefaultValuesForRequiredVars}}
if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
{{/useDefaultValuesForRequiredVars}}
{{^useDefaultValuesForRequiredVars}}
if _, exists := allProperties[requiredProperty]; !exists { if _, exists := allProperties[requiredProperty]; !exists {
{{/useDefaultValuesForRequiredVars}}
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
{{#useDefaultValuesForRequiredVars}}
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
{{/useDefaultValuesForRequiredVars}}
{{/hasRequired}} {{/hasRequired}}
{{#isAdditionalPropertiesTrue}} {{#isAdditionalPropertiesTrue}}
{{#parent}} {{#parent}}

View File

@ -54,5 +54,6 @@ public class GoClientOptionsTest extends AbstractOptionsTest {
verify(clientCodegen).setWithGoMod(GoClientOptionsProvider.WITH_GO_MOD_VALUE); verify(clientCodegen).setWithGoMod(GoClientOptionsProvider.WITH_GO_MOD_VALUE);
verify(clientCodegen).setGenerateMarshalJSON(GoClientOptionsProvider.GENERATE_MARSHAL_JSON_VALUE); verify(clientCodegen).setGenerateMarshalJSON(GoClientOptionsProvider.GENERATE_MARSHAL_JSON_VALUE);
verify(clientCodegen).setGenerateUnmarshalJSON(GoClientOptionsProvider.GENERATE_UNMARSHAL_JSON_VALUE); verify(clientCodegen).setGenerateUnmarshalJSON(GoClientOptionsProvider.GENERATE_UNMARSHAL_JSON_VALUE);
verify(clientCodegen).setUseDefaultValuesForRequiredVars(GoClientOptionsProvider.USE_DEFAULT_VALUES_FOR_REQUIRED_VARS_VALUE);
} }
} }

View File

@ -39,6 +39,7 @@ public class GoClientOptionsProvider implements OptionsProvider {
public static final boolean WITH_GO_MOD_VALUE = true; public static final boolean WITH_GO_MOD_VALUE = true;
public static final boolean GENERATE_MARSHAL_JSON_VALUE = true; public static final boolean GENERATE_MARSHAL_JSON_VALUE = true;
public static final boolean GENERATE_UNMARSHAL_JSON_VALUE = true; public static final boolean GENERATE_UNMARSHAL_JSON_VALUE = true;
public static final boolean USE_DEFAULT_VALUES_FOR_REQUIRED_VARS_VALUE = true;
@Override @Override
public String getLanguage() { public String getLanguage() {
@ -64,6 +65,7 @@ public class GoClientOptionsProvider implements OptionsProvider {
.put(CodegenConstants.GENERATE_UNMARSHAL_JSON, "true") .put(CodegenConstants.GENERATE_UNMARSHAL_JSON, "true")
.put("generateInterfaces", "true") .put("generateInterfaces", "true")
.put("structPrefix", "true") .put("structPrefix", "true")
.put(CodegenConstants.USE_DEFAULT_VALUES_FOR_REQUIRED_VARS, "true")
.build(); .build();
} }

View File

@ -108,6 +108,7 @@ func (o *Pet) SetName(v string) {
o.Name = v o.Name = v
} }
// GetCategory returns the Category field value if set, zero value otherwise. // GetCategory returns the Category field value if set, zero value otherwise.
func (o *Pet) GetCategory() Category { func (o *Pet) GetCategory() Category {
if o == nil || IsNil(o.Category) { if o == nil || IsNil(o.Category) {
@ -164,6 +165,7 @@ func (o *Pet) SetPhotoUrls(v []string) {
o.PhotoUrls = v o.PhotoUrls = v
} }
// GetTags returns the Tags field value if set, zero value otherwise. // GetTags returns the Tags field value if set, zero value otherwise.
func (o *Pet) GetTags() []Tag { func (o *Pet) GetTags() []Tag {
if o == nil || IsNil(o.Tags) { if o == nil || IsNil(o.Tags) {

View File

@ -108,6 +108,7 @@ func (o *Pet) SetName(v string) {
o.Name = v o.Name = v
} }
// GetCategory returns the Category field value if set, zero value otherwise. // GetCategory returns the Category field value if set, zero value otherwise.
func (o *Pet) GetCategory() Category { func (o *Pet) GetCategory() Category {
if o == nil || IsNil(o.Category) { if o == nil || IsNil(o.Category) {
@ -164,6 +165,7 @@ func (o *Pet) SetPhotoUrls(v []string) {
o.PhotoUrls = v o.PhotoUrls = v
} }
// GetTags returns the Tags field value if set, zero value otherwise. // GetTags returns the Tags field value if set, zero value otherwise.
func (o *Pet) GetTags() []Tag { func (o *Pet) GetTags() []Tag {
if o == nil || IsNil(o.Tags) { if o == nil || IsNil(o.Tags) {

View File

@ -74,6 +74,7 @@ func (o *AdditionalData) SetProp1(v string) {
o.Prop1 = v o.Prop1 = v
} }
// GetQuantity returns the Quantity field value // GetQuantity returns the Quantity field value
func (o *AdditionalData) GetQuantity() int32 { func (o *AdditionalData) GetQuantity() int32 {
if o == nil { if o == nil {
@ -98,6 +99,7 @@ func (o *AdditionalData) SetQuantity(v int32) {
o.Quantity = v o.Quantity = v
} }
// GetUnitPrice returns the UnitPrice field value // GetUnitPrice returns the UnitPrice field value
func (o *AdditionalData) GetUnitPrice() float64 { func (o *AdditionalData) GetUnitPrice() float64 {
if o == nil { if o == nil {
@ -122,6 +124,7 @@ func (o *AdditionalData) SetUnitPrice(v float64) {
o.UnitPrice = v o.UnitPrice = v
} }
// GetTotalPrice returns the TotalPrice field value // GetTotalPrice returns the TotalPrice field value
func (o *AdditionalData) GetTotalPrice() float64 { func (o *AdditionalData) GetTotalPrice() float64 {
if o == nil { if o == nil {
@ -146,6 +149,7 @@ func (o *AdditionalData) SetTotalPrice(v float64) {
o.TotalPrice = v o.TotalPrice = v
} }
func (o AdditionalData) MarshalJSON() ([]byte, error) { func (o AdditionalData) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -70,6 +70,7 @@ func (o *BaseItem) SetTitle(v string) {
o.Title = v o.Title = v
} }
// GetType returns the Type field value // GetType returns the Type field value
func (o *BaseItem) GetType() string { func (o *BaseItem) GetType() string {
if o == nil { if o == nil {
@ -94,6 +95,7 @@ func (o *BaseItem) SetType(v string) {
o.Type = v o.Type = v
} }
func (o BaseItem) MarshalJSON() ([]byte, error) { func (o BaseItem) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -77,6 +77,7 @@ func (o *FinalItem) SetProp1(v string) {
o.Prop1 = v o.Prop1 = v
} }
// GetQuantity returns the Quantity field value // GetQuantity returns the Quantity field value
func (o *FinalItem) GetQuantity() int32 { func (o *FinalItem) GetQuantity() int32 {
if o == nil { if o == nil {
@ -101,6 +102,7 @@ func (o *FinalItem) SetQuantity(v int32) {
o.Quantity = v o.Quantity = v
} }
// GetUnitPrice returns the UnitPrice field value // GetUnitPrice returns the UnitPrice field value
func (o *FinalItem) GetUnitPrice() float64 { func (o *FinalItem) GetUnitPrice() float64 {
if o == nil { if o == nil {
@ -125,6 +127,7 @@ func (o *FinalItem) SetUnitPrice(v float64) {
o.UnitPrice = v o.UnitPrice = v
} }
// GetTotalPrice returns the TotalPrice field value // GetTotalPrice returns the TotalPrice field value
func (o *FinalItem) GetTotalPrice() float64 { func (o *FinalItem) GetTotalPrice() float64 {
if o == nil { if o == nil {
@ -149,6 +152,7 @@ func (o *FinalItem) SetTotalPrice(v float64) {
o.TotalPrice = v o.TotalPrice = v
} }
func (o FinalItem) MarshalJSON() ([]byte, error) { func (o FinalItem) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -69,6 +69,7 @@ func (o *NestedObject1) SetField1(v string) {
o.Field1 = v o.Field1 = v
} }
func (o NestedObject1) MarshalJSON() ([]byte, error) { func (o NestedObject1) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -69,6 +69,7 @@ func (o *NestedObject2) SetField2(v string) {
o.Field2 = v o.Field2 = v
} }
func (o NestedObject2) MarshalJSON() ([]byte, error) { func (o NestedObject2) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -73,6 +73,7 @@ func (o *Animal) SetClassName(v string) {
o.ClassName = v o.ClassName = v
} }
// GetColor returns the Color field value if set, zero value otherwise. // GetColor returns the Color field value if set, zero value otherwise.
func (o *Animal) GetColor() string { func (o *Animal) GetColor() string {
if o == nil || IsNil(o.Color) { if o == nil || IsNil(o.Color) {

View File

@ -103,6 +103,7 @@ func (o *Category) SetName(v string) {
o.Name = v o.Name = v
} }
func (o Category) MarshalJSON() ([]byte, error) { func (o Category) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -104,6 +104,7 @@ func (o *EnumTest) SetEnumStringRequired(v string) {
o.EnumStringRequired = v o.EnumStringRequired = v
} }
// GetEnumInteger returns the EnumInteger field value if set, zero value otherwise. // GetEnumInteger returns the EnumInteger field value if set, zero value otherwise.
func (o *EnumTest) GetEnumInteger() int32 { func (o *EnumTest) GetEnumInteger() int32 {
if o == nil || IsNil(o.EnumInteger) { if o == nil || IsNil(o.EnumInteger) {

View File

@ -182,6 +182,7 @@ func (o *FormatTest) SetNumber(v float32) {
o.Number = v o.Number = v
} }
// GetFloat returns the Float field value if set, zero value otherwise. // GetFloat returns the Float field value if set, zero value otherwise.
func (o *FormatTest) GetFloat() float32 { func (o *FormatTest) GetFloat() float32 {
if o == nil || IsNil(o.Float) { if o == nil || IsNil(o.Float) {
@ -302,6 +303,7 @@ func (o *FormatTest) SetByte(v string) {
o.Byte = v o.Byte = v
} }
// GetBinary returns the Binary field value if set, zero value otherwise. // GetBinary returns the Binary field value if set, zero value otherwise.
func (o *FormatTest) GetBinary() *os.File { func (o *FormatTest) GetBinary() *os.File {
if o == nil || IsNil(o.Binary) { if o == nil || IsNil(o.Binary) {
@ -358,6 +360,7 @@ func (o *FormatTest) SetDate(v string) {
o.Date = v o.Date = v
} }
// GetDateTime returns the DateTime field value if set, zero value otherwise. // GetDateTime returns the DateTime field value if set, zero value otherwise.
func (o *FormatTest) GetDateTime() time.Time { func (o *FormatTest) GetDateTime() time.Time {
if o == nil || IsNil(o.DateTime) { if o == nil || IsNil(o.DateTime) {
@ -446,6 +449,7 @@ func (o *FormatTest) SetPassword(v string) {
o.Password = v o.Password = v
} }
// GetBigDecimal returns the BigDecimal field value if set, zero value otherwise. // GetBigDecimal returns the BigDecimal field value if set, zero value otherwise.
func (o *FormatTest) GetBigDecimal() float64 { func (o *FormatTest) GetBigDecimal() float64 {
if o == nil || IsNil(o.BigDecimal) { if o == nil || IsNil(o.BigDecimal) {

View File

@ -71,6 +71,7 @@ func (o *Name) SetName(v int32) {
o.Name = v o.Name = v
} }
// GetSnakeCase returns the SnakeCase field value if set, zero value otherwise. // GetSnakeCase returns the SnakeCase field value if set, zero value otherwise.
func (o *Name) GetSnakeCase() int32 { func (o *Name) GetSnakeCase() int32 {
if o == nil || IsNil(o.SnakeCase) { if o == nil || IsNil(o.SnakeCase) {

View File

@ -139,6 +139,7 @@ func (o *Pet) SetName(v string) {
o.Name = v o.Name = v
} }
// GetPhotoUrls returns the PhotoUrls field value // GetPhotoUrls returns the PhotoUrls field value
func (o *Pet) GetPhotoUrls() []string { func (o *Pet) GetPhotoUrls() []string {
if o == nil { if o == nil {
@ -163,6 +164,7 @@ func (o *Pet) SetPhotoUrls(v []string) {
o.PhotoUrls = v o.PhotoUrls = v
} }
// GetTags returns the Tags field value if set, zero value otherwise. // GetTags returns the Tags field value if set, zero value otherwise.
func (o *Pet) GetTags() []Tag { func (o *Pet) GetTags() []Tag {
if o == nil || IsNil(o.Tags) { if o == nil || IsNil(o.Tags) {

View File

@ -80,6 +80,7 @@ func (o *TypeHolderDefault) SetStringItem(v string) {
o.StringItem = v o.StringItem = v
} }
// GetNumberItem returns the NumberItem field value // GetNumberItem returns the NumberItem field value
func (o *TypeHolderDefault) GetNumberItem() float32 { func (o *TypeHolderDefault) GetNumberItem() float32 {
if o == nil { if o == nil {
@ -104,6 +105,7 @@ func (o *TypeHolderDefault) SetNumberItem(v float32) {
o.NumberItem = v o.NumberItem = v
} }
// GetIntegerItem returns the IntegerItem field value // GetIntegerItem returns the IntegerItem field value
func (o *TypeHolderDefault) GetIntegerItem() int32 { func (o *TypeHolderDefault) GetIntegerItem() int32 {
if o == nil { if o == nil {
@ -128,6 +130,7 @@ func (o *TypeHolderDefault) SetIntegerItem(v int32) {
o.IntegerItem = v o.IntegerItem = v
} }
// GetBoolItem returns the BoolItem field value // GetBoolItem returns the BoolItem field value
func (o *TypeHolderDefault) GetBoolItem() bool { func (o *TypeHolderDefault) GetBoolItem() bool {
if o == nil { if o == nil {
@ -152,6 +155,7 @@ func (o *TypeHolderDefault) SetBoolItem(v bool) {
o.BoolItem = v o.BoolItem = v
} }
// GetArrayItem returns the ArrayItem field value // GetArrayItem returns the ArrayItem field value
func (o *TypeHolderDefault) GetArrayItem() []int32 { func (o *TypeHolderDefault) GetArrayItem() []int32 {
if o == nil { if o == nil {
@ -176,6 +180,7 @@ func (o *TypeHolderDefault) SetArrayItem(v []int32) {
o.ArrayItem = v o.ArrayItem = v
} }
func (o TypeHolderDefault) MarshalJSON() ([]byte, error) { func (o TypeHolderDefault) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -78,6 +78,7 @@ func (o *TypeHolderExample) SetStringItem(v string) {
o.StringItem = v o.StringItem = v
} }
// GetNumberItem returns the NumberItem field value // GetNumberItem returns the NumberItem field value
func (o *TypeHolderExample) GetNumberItem() float32 { func (o *TypeHolderExample) GetNumberItem() float32 {
if o == nil { if o == nil {
@ -102,6 +103,7 @@ func (o *TypeHolderExample) SetNumberItem(v float32) {
o.NumberItem = v o.NumberItem = v
} }
// GetFloatItem returns the FloatItem field value // GetFloatItem returns the FloatItem field value
func (o *TypeHolderExample) GetFloatItem() float32 { func (o *TypeHolderExample) GetFloatItem() float32 {
if o == nil { if o == nil {
@ -126,6 +128,7 @@ func (o *TypeHolderExample) SetFloatItem(v float32) {
o.FloatItem = v o.FloatItem = v
} }
// GetIntegerItem returns the IntegerItem field value // GetIntegerItem returns the IntegerItem field value
func (o *TypeHolderExample) GetIntegerItem() int32 { func (o *TypeHolderExample) GetIntegerItem() int32 {
if o == nil { if o == nil {
@ -150,6 +153,7 @@ func (o *TypeHolderExample) SetIntegerItem(v int32) {
o.IntegerItem = v o.IntegerItem = v
} }
// GetBoolItem returns the BoolItem field value // GetBoolItem returns the BoolItem field value
func (o *TypeHolderExample) GetBoolItem() bool { func (o *TypeHolderExample) GetBoolItem() bool {
if o == nil { if o == nil {
@ -174,6 +178,7 @@ func (o *TypeHolderExample) SetBoolItem(v bool) {
o.BoolItem = v o.BoolItem = v
} }
// GetArrayItem returns the ArrayItem field value // GetArrayItem returns the ArrayItem field value
func (o *TypeHolderExample) GetArrayItem() []int32 { func (o *TypeHolderExample) GetArrayItem() []int32 {
if o == nil { if o == nil {
@ -198,6 +203,7 @@ func (o *TypeHolderExample) SetArrayItem(v []int32) {
o.ArrayItem = v o.ArrayItem = v
} }
func (o TypeHolderExample) MarshalJSON() ([]byte, error) { func (o TypeHolderExample) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {

View File

@ -140,6 +140,7 @@ func (o *Pet) SetName(v string) {
o.Name = v o.Name = v
} }
// GetPhotoUrls returns the PhotoUrls field value // GetPhotoUrls returns the PhotoUrls field value
func (o *Pet) GetPhotoUrls() []string { func (o *Pet) GetPhotoUrls() []string {
if o == nil { if o == nil {
@ -164,6 +165,7 @@ func (o *Pet) SetPhotoUrls(v []string) {
o.PhotoUrls = v o.PhotoUrls = v
} }
// GetTags returns the Tags field value if set, zero value otherwise. // GetTags returns the Tags field value if set, zero value otherwise.
func (o *Pet) GetTags() []Tag { func (o *Pet) GetTags() []Tag {
if o == nil || IsNil(o.Tags) { if o == nil || IsNil(o.Tags) {

View File

@ -73,6 +73,7 @@ func (o *Animal) SetClassName(v string) {
o.ClassName = v o.ClassName = v
} }
// GetColor returns the Color field value if set, zero value otherwise. // GetColor returns the Color field value if set, zero value otherwise.
func (o *Animal) GetColor() string { func (o *Animal) GetColor() string {
if o == nil || IsNil(o.Color) { if o == nil || IsNil(o.Color) {
@ -135,6 +136,11 @@ func (o *Animal) UnmarshalJSON(data []byte) (err error) {
"className", "className",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -144,11 +150,23 @@ func (o *Animal) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varAnimal := _Animal{} varAnimal := _Animal{}
err = json.Unmarshal(data, &varAnimal) err = json.Unmarshal(data, &varAnimal)

View File

@ -69,6 +69,7 @@ func (o *AppleReq) SetCultivar(v string) {
o.Cultivar = v o.Cultivar = v
} }
// GetMealy returns the Mealy field value if set, zero value otherwise. // GetMealy returns the Mealy field value if set, zero value otherwise.
func (o *AppleReq) GetMealy() bool { func (o *AppleReq) GetMealy() bool {
if o == nil || IsNil(o.Mealy) { if o == nil || IsNil(o.Mealy) {
@ -131,6 +132,11 @@ func (o *AppleReq) UnmarshalJSON(data []byte) (err error) {
"cultivar", "cultivar",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -140,11 +146,23 @@ func (o *AppleReq) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varAppleReq := _AppleReq{} varAppleReq := _AppleReq{}
err = json.Unmarshal(data, &varAppleReq) err = json.Unmarshal(data, &varAppleReq)

View File

@ -69,6 +69,7 @@ func (o *BananaReq) SetLengthCm(v float32) {
o.LengthCm = v o.LengthCm = v
} }
// GetSweet returns the Sweet field value if set, zero value otherwise. // GetSweet returns the Sweet field value if set, zero value otherwise.
func (o *BananaReq) GetSweet() bool { func (o *BananaReq) GetSweet() bool {
if o == nil || IsNil(o.Sweet) { if o == nil || IsNil(o.Sweet) {
@ -131,6 +132,11 @@ func (o *BananaReq) UnmarshalJSON(data []byte) (err error) {
"lengthCm", "lengthCm",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -140,11 +146,23 @@ func (o *BananaReq) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varBananaReq := _BananaReq{} varBananaReq := _BananaReq{}
err = json.Unmarshal(data, &varBananaReq) err = json.Unmarshal(data, &varBananaReq)

View File

@ -118,6 +118,11 @@ func (o *Cat) UnmarshalJSON(data []byte) (err error) {
"className", "className",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -127,11 +132,23 @@ func (o *Cat) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
type CatWithoutEmbeddedStruct struct { type CatWithoutEmbeddedStruct struct {
Declawed *bool `json:"declawed,omitempty"` Declawed *bool `json:"declawed,omitempty"`
} }

View File

@ -103,6 +103,12 @@ func (o *Category) SetName(v string) {
o.Name = v o.Name = v
} }
// GetDefaultname function assigns the default value &quot;default-name&quot; to the Name field
// of the Category struct and returns the "default-name".
func (o *Category) GetDefaultName() interface{} {
return "default-name"
}
func (o Category) MarshalJSON() ([]byte, error) { func (o Category) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {
@ -116,6 +122,9 @@ func (o Category) ToMap() (map[string]interface{}, error) {
if !IsNil(o.Id) { if !IsNil(o.Id) {
toSerialize["id"] = o.Id toSerialize["id"] = o.Id
} }
if _, exists := toSerialize["name"]; !exists {
toSerialize["name"] = o.GetDefaultName()
}
toSerialize["name"] = o.Name toSerialize["name"] = o.Name
for key, value := range o.AdditionalProperties { for key, value := range o.AdditionalProperties {
@ -133,6 +142,12 @@ func (o *Category) UnmarshalJSON(data []byte) (err error) {
"name", "name",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
"name": o.GetDefaultName,
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -142,11 +157,23 @@ func (o *Category) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varCategory := _Category{} varCategory := _Category{}
err = json.Unmarshal(data, &varCategory) err = json.Unmarshal(data, &varCategory)

View File

@ -118,6 +118,11 @@ func (o *Dog) UnmarshalJSON(data []byte) (err error) {
"className", "className",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -127,11 +132,23 @@ func (o *Dog) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
type DogWithoutEmbeddedStruct struct { type DogWithoutEmbeddedStruct struct {
Breed *string `json:"breed,omitempty"` Breed *string `json:"breed,omitempty"`
} }

View File

@ -69,6 +69,7 @@ func (o *DuplicatedPropParent) SetDupProp(v string) {
o.DupProp = v o.DupProp = v
} }
func (o DuplicatedPropParent) MarshalJSON() ([]byte, error) { func (o DuplicatedPropParent) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {
@ -96,6 +97,11 @@ func (o *DuplicatedPropParent) UnmarshalJSON(data []byte) (err error) {
"dup-prop", "dup-prop",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -105,11 +111,23 @@ func (o *DuplicatedPropParent) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varDuplicatedPropParent := _DuplicatedPropParent{} varDuplicatedPropParent := _DuplicatedPropParent{}
err = json.Unmarshal(data, &varDuplicatedPropParent) err = json.Unmarshal(data, &varDuplicatedPropParent)

View File

@ -115,6 +115,7 @@ func (o *EnumTest) SetEnumStringRequired(v string) {
o.EnumStringRequired = v o.EnumStringRequired = v
} }
// GetEnumInteger returns the EnumInteger field value if set, zero value otherwise. // GetEnumInteger returns the EnumInteger field value if set, zero value otherwise.
func (o *EnumTest) GetEnumInteger() int32 { func (o *EnumTest) GetEnumInteger() int32 {
if o == nil || IsNil(o.EnumInteger) { if o == nil || IsNil(o.EnumInteger) {
@ -365,6 +366,11 @@ func (o *EnumTest) UnmarshalJSON(data []byte) (err error) {
"enum_string_required", "enum_string_required",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -374,11 +380,23 @@ func (o *EnumTest) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varEnumTest := _EnumTest{} varEnumTest := _EnumTest{}
err = json.Unmarshal(data, &varEnumTest) err = json.Unmarshal(data, &varEnumTest)

View File

@ -72,6 +72,12 @@ func (o *Foo) SetBar(v string) {
o.Bar = v o.Bar = v
} }
// GetDefaultbar function assigns the default value &quot;bar&quot; to the Bar field
// of the Foo struct and returns the "bar".
func (o *Foo) GetDefaultBar() interface{} {
return "bar"
}
// GetMap returns the Map field value if set, zero value otherwise. // GetMap returns the Map field value if set, zero value otherwise.
func (o *Foo) GetMap() map[string][]time.Time { func (o *Foo) GetMap() map[string][]time.Time {
if o == nil || IsNil(o.Map) { if o == nil || IsNil(o.Map) {
@ -114,6 +120,9 @@ func (o Foo) MarshalJSON() ([]byte, error) {
func (o Foo) ToMap() (map[string]interface{}, error) { func (o Foo) ToMap() (map[string]interface{}, error) {
toSerialize := map[string]interface{}{} toSerialize := map[string]interface{}{}
if _, exists := toSerialize["bar"]; !exists {
toSerialize["bar"] = o.GetDefaultBar()
}
toSerialize["bar"] = o.Bar toSerialize["bar"] = o.Bar
if !IsNil(o.Map) { if !IsNil(o.Map) {
toSerialize["map"] = o.Map toSerialize["map"] = o.Map
@ -134,6 +143,12 @@ func (o *Foo) UnmarshalJSON(data []byte) (err error) {
"bar", "bar",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
"bar": o.GetDefaultBar,
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -143,11 +158,23 @@ func (o *Foo) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varFoo := _Foo{} varFoo := _Foo{}
err = json.Unmarshal(data, &varFoo) err = json.Unmarshal(data, &varFoo)

View File

@ -185,6 +185,7 @@ func (o *FormatTest) SetNumber(v float32) {
o.Number = v o.Number = v
} }
// GetFloat returns the Float field value if set, zero value otherwise. // GetFloat returns the Float field value if set, zero value otherwise.
func (o *FormatTest) GetFloat() float32 { func (o *FormatTest) GetFloat() float32 {
if o == nil || IsNil(o.Float) { if o == nil || IsNil(o.Float) {
@ -305,6 +306,7 @@ func (o *FormatTest) SetByte(v string) {
o.Byte = v o.Byte = v
} }
// GetBinary returns the Binary field value if set, zero value otherwise. // GetBinary returns the Binary field value if set, zero value otherwise.
func (o *FormatTest) GetBinary() *os.File { func (o *FormatTest) GetBinary() *os.File {
if o == nil || IsNil(o.Binary) { if o == nil || IsNil(o.Binary) {
@ -361,6 +363,7 @@ func (o *FormatTest) SetDate(v string) {
o.Date = v o.Date = v
} }
// GetDateTime returns the DateTime field value if set, zero value otherwise. // GetDateTime returns the DateTime field value if set, zero value otherwise.
func (o *FormatTest) GetDateTime() time.Time { func (o *FormatTest) GetDateTime() time.Time {
if o == nil || IsNil(o.DateTime) { if o == nil || IsNil(o.DateTime) {
@ -449,6 +452,7 @@ func (o *FormatTest) SetPassword(v string) {
o.Password = v o.Password = v
} }
// GetPatternWithDigits returns the PatternWithDigits field value if set, zero value otherwise. // GetPatternWithDigits returns the PatternWithDigits field value if set, zero value otherwise.
func (o *FormatTest) GetPatternWithDigits() string { func (o *FormatTest) GetPatternWithDigits() string {
if o == nil || IsNil(o.PatternWithDigits) { if o == nil || IsNil(o.PatternWithDigits) {
@ -579,6 +583,11 @@ func (o *FormatTest) UnmarshalJSON(data []byte) (err error) {
"password", "password",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -588,11 +597,23 @@ func (o *FormatTest) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varFormatTest := _FormatTest{} varFormatTest := _FormatTest{}
err = json.Unmarshal(data, &varFormatTest) err = json.Unmarshal(data, &varFormatTest)

View File

@ -71,6 +71,7 @@ func (o *Name) SetName(v int32) {
o.Name = v o.Name = v
} }
// GetSnakeCase returns the SnakeCase field value if set, zero value otherwise. // GetSnakeCase returns the SnakeCase field value if set, zero value otherwise.
func (o *Name) GetSnakeCase() int32 { func (o *Name) GetSnakeCase() int32 {
if o == nil || IsNil(o.SnakeCase) { if o == nil || IsNil(o.SnakeCase) {
@ -203,6 +204,11 @@ func (o *Name) UnmarshalJSON(data []byte) (err error) {
"name", "name",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -212,11 +218,23 @@ func (o *Name) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varName := _Name{} varName := _Name{}
err = json.Unmarshal(data, &varName) err = json.Unmarshal(data, &varName)

View File

@ -140,6 +140,7 @@ func (o *Pet) SetName(v string) {
o.Name = v o.Name = v
} }
// GetPhotoUrls returns the PhotoUrls field value // GetPhotoUrls returns the PhotoUrls field value
func (o *Pet) GetPhotoUrls() []string { func (o *Pet) GetPhotoUrls() []string {
if o == nil { if o == nil {
@ -164,6 +165,7 @@ func (o *Pet) SetPhotoUrls(v []string) {
o.PhotoUrls = v o.PhotoUrls = v
} }
// GetTags returns the Tags field value if set, zero value otherwise. // GetTags returns the Tags field value if set, zero value otherwise.
func (o *Pet) GetTags() []Tag { func (o *Pet) GetTags() []Tag {
if o == nil || IsNil(o.Tags) { if o == nil || IsNil(o.Tags) {
@ -272,6 +274,11 @@ func (o *Pet) UnmarshalJSON(data []byte) (err error) {
"photoUrls", "photoUrls",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -281,11 +288,23 @@ func (o *Pet) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varPet := _Pet{} varPet := _Pet{}
err = json.Unmarshal(data, &varPet) err = json.Unmarshal(data, &varPet)

View File

@ -134,6 +134,7 @@ func (o *Whale) SetClassName(v string) {
o.ClassName = v o.ClassName = v
} }
func (o Whale) MarshalJSON() ([]byte, error) { func (o Whale) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {
@ -167,6 +168,11 @@ func (o *Whale) UnmarshalJSON(data []byte) (err error) {
"className", "className",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -176,11 +182,23 @@ func (o *Whale) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varWhale := _Whale{} varWhale := _Whale{}
err = json.Unmarshal(data, &varWhale) err = json.Unmarshal(data, &varWhale)

View File

@ -101,6 +101,7 @@ func (o *Zebra) SetClassName(v string) {
o.ClassName = v o.ClassName = v
} }
func (o Zebra) MarshalJSON() ([]byte, error) { func (o Zebra) MarshalJSON() ([]byte, error) {
toSerialize,err := o.ToMap() toSerialize,err := o.ToMap()
if err != nil { if err != nil {
@ -131,6 +132,11 @@ func (o *Zebra) UnmarshalJSON(data []byte) (err error) {
"className", "className",
} }
// defaultValueFuncMap captures the default values for required properties.
// These values are used when required properties are missing from the payload.
defaultValueFuncMap := map[string]func() interface{} {
}
var defaultValueApplied bool
allProperties := make(map[string]interface{}) allProperties := make(map[string]interface{})
err = json.Unmarshal(data, &allProperties) err = json.Unmarshal(data, &allProperties)
@ -140,11 +146,23 @@ func (o *Zebra) UnmarshalJSON(data []byte) (err error) {
} }
for _, requiredProperty := range(requiredProperties) { for _, requiredProperty := range(requiredProperties) {
if _, exists := allProperties[requiredProperty]; !exists { if value, exists := allProperties[requiredProperty]; !exists || value == "" {
if _, ok := defaultValueFuncMap[requiredProperty]; ok {
allProperties[requiredProperty] = defaultValueFuncMap[requiredProperty]()
defaultValueApplied = true
}
}
if value, exists := allProperties[requiredProperty]; !exists || value == ""{
return fmt.Errorf("no value given for required property %v", requiredProperty) return fmt.Errorf("no value given for required property %v", requiredProperty)
} }
} }
if defaultValueApplied {
data, err = json.Marshal(allProperties)
if err != nil{
return err
}
}
varZebra := _Zebra{} varZebra := _Zebra{}
err = json.Unmarshal(data, &varZebra) err = json.Unmarshal(data, &varZebra)