From 2b91b2befd8b164cfd5af862a1fb42d761189e3a Mon Sep 17 00:00:00 2001 From: Viacheslav Poturaev Date: Mon, 22 Jun 2020 15:26:34 +0200 Subject: [PATCH] Use SchemaEns() to avoid zero value panic --- reflector/asyncapi-2.0.0/reflect.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/reflector/asyncapi-2.0.0/reflect.go b/reflector/asyncapi-2.0.0/reflect.go index a2e4472..80d88e1 100644 --- a/reflector/asyncapi-2.0.0/reflect.go +++ b/reflector/asyncapi-2.0.0/reflect.go @@ -17,7 +17,14 @@ type Reflector struct { } // DataEns ensures AsyncAPI Schema. +// +// Deprecated: use SchemaEns(). func (r *Reflector) DataEns() *spec.AsyncAPI { + return r.SchemaEns() +} + +// SchemaEns ensures AsyncAPI Schema. +func (r *Reflector) SchemaEns() *spec.AsyncAPI { if r.Schema == nil { r.Schema = &spec.AsyncAPI{} } @@ -71,7 +78,7 @@ func (r *Reflector) AddChannel(info ChannelInfo) error { } } - r.DataEns().WithChannelsItem(info.Name, channelItem) + r.SchemaEns().WithChannelsItem(info.Name, channelItem) return nil } @@ -93,11 +100,11 @@ func schemaToMap(schema jsonschema.Schema) map[string]interface{} { } func (r *Reflector) collectDefinition(name string, schema jsonschema.Schema) { - if r.Schema.ComponentsEns().Schemas == nil { - r.Schema.ComponentsEns().Schemas = make(map[string]map[string]interface{}, 1) + if r.SchemaEns().ComponentsEns().Schemas == nil { + r.SchemaEns().ComponentsEns().Schemas = make(map[string]map[string]interface{}, 1) } - r.Schema.ComponentsEns().Schemas[name] = schemaToMap(schema) + r.SchemaEns().ComponentsEns().Schemas[name] = schemaToMap(schema) } func (r *Reflector) makeOperation(channelItem *spec.ChannelItem, m *MessageSample) (*spec.Operation, error) { @@ -165,7 +172,7 @@ func (r *Reflector) makeOperation(channelItem *spec.ChannelItem, m *MessageSampl if payloadSchema.Ref != nil { messageName := strings.TrimPrefix(*payloadSchema.Ref, "#/components/schemas/") - r.Schema.ComponentsEns().WithMessagesItem(messageName, spec.Message{ + r.SchemaEns().ComponentsEns().WithMessagesItem(messageName, spec.Message{ Entity: &m.MessageEntity, })