MCPcopy Create free account
hub / github.com/UiPath/uipathcli / parseSchema

Method parseSchema

parser/openapi_parser.go:147–176  ·  view source on GitHub ↗
(fieldName string, schemaRef *openapi3.SchemaRef, in string, requiredFieldnames []string, visitedSchemas map[*openapi3.SchemaRef]bool)

Source from the content-addressed store, hash-verified

145}
146
147func (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
178func (p OpenApiParser) parseSchemas(schemas openapi3.Schemas, in string, requiredFieldnames []string, visitedSchemas map[*openapi3.SchemaRef]bool) []Parameter {
179 result := []Parameter{}

Callers 2

parseSchemasMethod · 0.95

Calls 9

getTypeMethod · 0.95
containsMethod · 0.95
getCustomNameMethod · 0.95
getDefaultValueMethod · 0.95
getAllowedValuesMethod · 0.95
getPropertiesSchemasMethod · 0.95
parseSchemasMethod · 0.95
toSnakeCaseFunction · 0.85
NewParameterFunction · 0.70

Tested by

no test coverage detected