internal/openapi/generator/data/combinedSchemaGenerator.go   A
last analyzed

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 80%

Importance

Changes 0
Metric Value
cc 3
eloc 18
dl 0
loc 29
ccs 4
cts 5
cp 0.8
crap 3.072
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A data.*combinedSchemaGenerator.SetSchemaGenerator 0 2 1
A data.*combinedSchemaGenerator.GenerateDataBySchema 0 10 2
1
package data
2
3
import (
4
	"context"
5
	"fmt"
6
7
	"github.com/getkin/kin-openapi/openapi3"
8
	"github.com/pkg/errors"
9
)
10
11
type combinedSchemaGenerator struct {
12
	merger          schemaMerger
13
	schemaGenerator schemaGenerator
14
}
15
16
func (generator *combinedSchemaGenerator) SetSchemaGenerator(schemaGenerator schemaGenerator) {
17
	generator.schemaGenerator = schemaGenerator
18
}
19
20
func (generator *combinedSchemaGenerator) GenerateDataBySchema(ctx context.Context, schema *openapi3.Schema) (Data, error) {
21 1
	mergedSchema := generator.merger.MergeSchemas(schema)
22 1
	if mergedSchema == nil {
23 1
		return nil, errors.WithStack(&ErrGenerationFailed{
24
			GeneratorID: "combinedSchemaGenerator",
25
			Message:     fmt.Sprintf("schema '%s' is not a combining schema", schema.Title),
26
		})
27
	}
28
29 1
	return generator.schemaGenerator.GenerateDataBySchema(ctx, mergedSchema)
30
}
31