(fieldName string, schemaRef *openapi3.SchemaRef, in string, requiredFieldnames []string, visitedSchemas map[*openapi3.SchemaRef]bool)
| 145 | } |
| 146 | |
| 147 | func (p OpenApiParser) parseSchema(fieldName string, schemaRef *openapi3.SchemaRef, in string, requiredFieldnames []string, visitedSchemas map[*openapi3.SchemaRef]bool) *Parameter { |
| 148 | _, visited := visitedSchemas[schemaRef] |
| 149 | if visited { |
| 150 | return nil |
| 151 | } |
| 152 | visitedSchemas[schemaRef] = true |
| 153 | |
| 154 | name := toSnakeCase(fieldName) |
| 155 | _type := p.getType(schemaRef) |
| 156 | required := p.contains(requiredFieldnames, fieldName) |
| 157 | parameters := []Parameter{} |
| 158 | description := "" |
| 159 | var defaultValue interface{} |
| 160 | var allowedValues []interface{} |
| 161 | if schemaRef != nil { |
| 162 | customName := p.getCustomName(schemaRef.Value.Extensions) |
| 163 | if customName != "" { |
| 164 | name = customName |
| 165 | } |
| 166 | description = schemaRef.Value.Description |
| 167 | defaultValue = p.getDefaultValue(schemaRef.Value) |
| 168 | allowedValues = p.getAllowedValues(schemaRef.Value) |
| 169 | if required && defaultValue == nil && len(allowedValues) == 1 { |
| 170 | defaultValue = allowedValues[0] |
| 171 | } |
| 172 | propertiesSchemas := p.getPropertiesSchemas(schemaRef.Value) |
| 173 | parameters = p.parseSchemas(propertiesSchemas, in, schemaRef.Value.Required, visitedSchemas) |
| 174 | } |
| 175 | return NewParameter(name, _type, description, in, fieldName, required, defaultValue, allowedValues, false, parameters) |
| 176 | } |
| 177 | |
| 178 | func (p OpenApiParser) parseSchemas(schemas openapi3.Schemas, in string, requiredFieldnames []string, visitedSchemas map[*openapi3.SchemaRef]bool) []Parameter { |
| 179 | result := []Parameter{} |
no test coverage detected