in coverage/expand.go [39:71]
func getAllOfTable(swaggerPath string) (map[string]map[string]interface{}, error) {
if vt, ok := allOfTableCache.Get(swaggerPath); ok {
return vt, nil
}
doc, err := loadSwagger(swaggerPath)
if err != nil {
return nil, err
}
spec := doc.Spec()
allOfTable := map[string]map[string]interface{}{}
for k, v := range spec.Definitions {
if len(v.AllOf) > 0 {
for _, allOf := range v.AllOf {
if allOf.Ref.String() != "" {
modelName, absPath := SchemaNamePathFromRef(swaggerPath, allOf.Ref)
if absPath != swaggerPath {
continue
}
if _, ok := allOfTable[modelName]; !ok {
allOfTable[modelName] = map[string]interface{}{}
}
allOfTable[modelName][k] = nil
}
}
}
}
allOfTableCache.Add(swaggerPath, allOfTable)
return allOfTable, nil
}