mirror of
https://github.com/jlengrand/openapi-generator.git
synced 2026-03-10 08:31:23 +00:00
[GO] Add assert constraints checks for complex types in the model template (#18654)
* [GO] Add assert constraints checks for complex types in the model template * [GO] Update samples * [GO] revert AssertRecurseInterface naming
This commit is contained in:
@@ -174,6 +174,61 @@ func Assert{{classname}}Constraints(obj {{classname}}) error {
|
||||
return &ParsingError{Param: "{{name}}", Err: errors.New(errMsgMaxValueConstraint)}
|
||||
}
|
||||
{{/maximum}}
|
||||
{{#isNullable}}
|
||||
{{#isModel}}
|
||||
if obj.{{name}} != nil {
|
||||
{{/isModel}}
|
||||
{{#isArray}}
|
||||
{{#items.isModel}}
|
||||
if obj.{{name}} != nil {
|
||||
{{/items.isModel}}
|
||||
{{/isArray}}
|
||||
{{/isNullable}}
|
||||
{{#isModel}}
|
||||
{{#isNullable}} {{/isNullable}} if err := Assert{{baseType}}Constraints({{#isNullable}}*{{/isNullable}}obj.{{name}}); err != nil {
|
||||
{{#isNullable}} {{/isNullable}} return err
|
||||
{{#isNullable}} {{/isNullable}} }
|
||||
{{/isModel}}
|
||||
{{#isArray}}
|
||||
{{#items.isModel}}
|
||||
{{#isNullable}} {{/isNullable}} for _, el := range {{#isNullable}}*{{/isNullable}}obj.{{name}} {
|
||||
{{#isNullable}} {{/isNullable}} if err := Assert{{items.baseType}}Constraints(el); err != nil {
|
||||
{{#isNullable}} {{/isNullable}} return err
|
||||
{{#isNullable}} {{/isNullable}} }
|
||||
{{#isNullable}} {{/isNullable}} }
|
||||
{{/items.isModel}}
|
||||
{{^items.isModel}}
|
||||
{{#mostInnerItems.isModel}}
|
||||
{{^mostInnerItems.isPrimitiveType}}
|
||||
{{#isNullable}}
|
||||
if obj.{{name}} != nil {
|
||||
{{/isNullable}}
|
||||
{{#isNullable}} {{/isNullable}} if err := AssertRecurseInterfaceRequired({{#isNullable}}*{{/isNullable}}obj.{{name}}, Assert{{mostInnerItems.dataType}}Constraints); err != nil {
|
||||
{{#isNullable}} {{/isNullable}} return err
|
||||
{{#isNullable}} {{/isNullable}} }
|
||||
{{/mostInnerItems.isPrimitiveType}}
|
||||
{{/mostInnerItems.isModel}}
|
||||
{{/items.isModel}}
|
||||
{{/isArray}}
|
||||
{{#isNullable}}
|
||||
{{#isModel}}
|
||||
}
|
||||
{{/isModel}}
|
||||
{{#isArray}}
|
||||
{{#items.isModel}}
|
||||
}
|
||||
{{/items.isModel}}
|
||||
{{^items.isModel}}
|
||||
{{#mostInnerItems.isModel}}
|
||||
{{^mostInnerItems.isPrimitiveType}}
|
||||
{{#isNullable}}
|
||||
}
|
||||
{{/isNullable}}
|
||||
{{/mostInnerItems.isPrimitiveType}}
|
||||
{{/mostInnerItems.isModel}}
|
||||
{{/items.isModel}}
|
||||
{{/isArray}}
|
||||
{{/isNullable}}
|
||||
{{/Vars}}
|
||||
return nil
|
||||
}{{/model}}{{/models}}
|
||||
|
||||
Reference in New Issue
Block a user