Skip to content

Commit

Permalink
fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tcdsv committed Oct 6, 2023
1 parent 5b036b5 commit 45dafb4
Show file tree
Hide file tree
Showing 4 changed files with 1,057 additions and 963 deletions.
28 changes: 11 additions & 17 deletions flatten/merge_allof.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,27 +57,21 @@ type state struct {
visitedSchemas utils.VisitedRefs
}

func NewState() *state {
func newState() *state {
return &state{
visitedSchemas: utils.VisitedRefs{},
}
}

// Merge replaces objects under AllOf with a flattened equivalent
func Merge(state *state, baseSchemaRef openapi3.SchemaRef) (*openapi3.Schema, error) {
func Merge(schema openapi3.SchemaRef) (*openapi3.Schema, error) {
return mergeInternal(newState(), schema)
}

/* if state.visitedSchemas.IsVisited(baseSchemaRef.Ref) {
return baseSchemaRef.Value, nil // TODO: check
}
*/
// Merge replaces objects under AllOf with a flattened equivalent
func mergeInternal(state *state, baseSchemaRef openapi3.SchemaRef) (*openapi3.Schema, error) {
baseSchema := baseSchemaRef.Value
/*
if baseSchemaRef.Ref != "" {
state.visitedSchemas.Add(baseSchemaRef.Ref)
defer state.visitedSchemas.Remove(baseSchemaRef.Ref)
}
*/
allOfSchemas, err := getAllOfSchemas(state, *baseSchema)

if err != nil {
return &openapi3.Schema{}, err
}
Expand All @@ -96,7 +90,7 @@ func getAllOfSchemas(state *state, schema openapi3.Schema) ([]*openapi3.Schema,
return schemas, nil
}
for _, schema := range schema.AllOf {
merged, err := Merge(state, *schema)
merged, err := mergeInternal(state, *schema)
if err != nil {
return schemas, err
}
Expand Down Expand Up @@ -416,7 +410,7 @@ func mergeProps(state *state, schema *openapi3.Schema, collection *SchemaCollect
for _, schema := range collection.Properties {
for propKey, schemaRef := range schema {
if containsString(propsToMerge, propKey) {
propMergedSchema, err := Merge(state, *schemaRef)
propMergedSchema, err := mergeInternal(state, *schemaRef)
if err != nil {
return &openapi3.Schema{}, err
}
Expand Down Expand Up @@ -759,7 +753,7 @@ func resolveNot(state *state, schema *openapi3.Schema, collection *SchemaCollect
return schema, nil
}
for _, ref := range refs {
merged, err := Merge(state, *ref)
merged, err := mergeInternal(state, *ref)
if err != nil {
return &openapi3.Schema{}, err
}
Expand Down Expand Up @@ -815,7 +809,7 @@ func mergeSchemaRefs(state *state, sr []openapi3.SchemaRefs) ([]openapi3.SchemaR
for _, refs := range sr {
r := openapi3.SchemaRefs{}
for _, ref := range refs {
merged, err := Merge(state, *ref)
merged, err := mergeInternal(state, *ref)
if err != nil {
return result, err
}
Expand Down
6 changes: 3 additions & 3 deletions flatten/merge_allof_spec.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ func mergeSchemas(schemas openapi3.Schemas) (openapi3.Schemas, error) {
if s == nil || s.Value == nil {
continue
}
m, err := Merge(*s.Value)
m, err := Merge(*s)
if err != nil {
return schemas, err
}
Expand Down Expand Up @@ -188,7 +188,7 @@ func mergeParameter(p *openapi3.Parameter) (*openapi3.Parameter, error) {
if p.Schema == nil || p.Schema.Value == nil {
return p, nil
}
m, err := Merge(*p.Schema.Value)
m, err := Merge(*p.Schema)
if err != nil {
return p, err
}
Expand All @@ -206,7 +206,7 @@ func mergeContent(content openapi3.Content) (openapi3.Content, error) {
if mediaType == nil || mediaType.Schema == nil || mediaType.Schema.Value == nil {
continue
}
m, err := Merge(*mediaType.Schema.Value)
m, err := Merge(*mediaType.Schema)
if err != nil {
return content, err
}
Expand Down
Loading

0 comments on commit 45dafb4

Please sign in to comment.