Total Lines | 33 |
Duplicated Lines | 0 % |
Coverage | 90% |
Changes | 0 |
1 | package data |
||
2 | |||
3 | import ( |
||
4 | "context" |
||
5 | |||
6 | "github.com/getkin/kin-openapi/openapi3" |
||
7 | "github.com/pkg/errors" |
||
8 | ) |
||
9 | |||
10 | type objectGenerator struct { |
||
11 | schemaGenerator schemaGenerator |
||
12 | } |
||
13 | |||
14 | func (generator *objectGenerator) SetSchemaGenerator(schemaGenerator schemaGenerator) { |
||
15 | generator.schemaGenerator = schemaGenerator |
||
16 | } |
||
17 | |||
18 | func (generator *objectGenerator) GenerateDataBySchema(ctx context.Context, schema *openapi3.Schema) (Data, error) { |
||
19 | 1 | var err error |
|
20 | 1 | object := map[string]interface{}{} |
|
21 | |||
22 | 1 | for propertyName, propertySchema := range schema.Properties { |
|
23 | 1 | if propertySchema.Value.WriteOnly { |
|
24 | 1 | continue |
|
25 | } |
||
26 | |||
27 | 1 | object[propertyName], err = generator.schemaGenerator.GenerateDataBySchema(ctx, propertySchema.Value) |
|
28 | 1 | if err != nil { |
|
29 | 1 | return nil, errors.WithMessagef(err, "[objectGenerator] failed to generate object property '%s'", propertyName) |
|
30 | } |
||
31 | } |
||
32 | |||
33 | 1 | return object, nil |
|
34 | } |
||
35 |