Skip to content

Commit 45aec34

Browse files
fahernandezachew22
authored andcommitted
863 changing field options override behavior for schema package object
1 parent b73f418 commit 45aec34

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

protoc-gen-swagger/genswagger/template.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ func queryParams(message *descriptor.Message, field *descriptor.Field, prefix st
103103
fieldType := field.GetTypeName()
104104
if message.File != nil {
105105
comments := fieldProtoComments(reg, message, field)
106-
if err := updateSwaggerDataFromComments(&schema, comments, "MessageType"); err != nil {
106+
if err := updateSwaggerDataFromComments(&schema, comments, false); err != nil {
107107
return nil, err
108108
}
109109
}
@@ -258,7 +258,7 @@ func renderMessagesAsDefinition(messages messageMap, d swaggerDefinitionsObject,
258258
},
259259
}
260260
msgComments := protoComments(reg, msg.File, msg.Outers, "MessageType", int32(msg.Index))
261-
if err := updateSwaggerDataFromComments(&schema, msgComments, "MessageType"); err != nil {
261+
if err := updateSwaggerDataFromComments(&schema, msgComments, false); err != nil {
262262
panic(err)
263263
}
264264
opts, err := extractSchemaOptionFromMessageDescriptor(msg.DescriptorProto)
@@ -302,7 +302,7 @@ func renderMessagesAsDefinition(messages messageMap, d swaggerDefinitionsObject,
302302
for _, f := range msg.Fields {
303303
fieldValue := schemaOfField(f, reg, customRefs)
304304
comments := fieldProtoComments(reg, msg, f)
305-
if err := updateSwaggerDataFromComments(&fieldValue, comments, "MessageType"); err != nil {
305+
if err := updateSwaggerDataFromComments(&fieldValue, comments, false); err != nil {
306306
panic(err)
307307
}
308308

@@ -507,7 +507,7 @@ func renderEnumerationsAsDefinition(enums enumMap, d swaggerDefinitionsObject, r
507507
Default: defaultValue,
508508
},
509509
}
510-
if err := updateSwaggerDataFromComments(&enumSchemaObject, enumComments, "EnumType"); err != nil {
510+
if err := updateSwaggerDataFromComments(&enumSchemaObject, enumComments, false); err != nil {
511511
panic(err)
512512
}
513513

@@ -858,7 +858,7 @@ func renderServices(services []*descriptor.Service, paths swaggerPathsObject, re
858858
}
859859

860860
methComments := protoComments(reg, svc.File, nil, "Method", int32(svcIdx), methProtoPath, int32(methIdx))
861-
if err := updateSwaggerDataFromComments(operationObject, methComments, "Method"); err != nil {
861+
if err := updateSwaggerDataFromComments(operationObject, methComments, false); err != nil {
862862
panic(err)
863863
}
864864

@@ -982,7 +982,7 @@ func applyTemplate(p param) (*swaggerObject, error) {
982982
// File itself might have some comments and metadata.
983983
packageProtoPath := protoPathIndex(reflect.TypeOf((*pbdescriptor.FileDescriptorProto)(nil)), "Package")
984984
packageComments := protoComments(p.reg, p.File, nil, "Package", packageProtoPath)
985-
if err := updateSwaggerDataFromComments(&s, packageComments, "Package"); err != nil {
985+
if err := updateSwaggerDataFromComments(&s, packageComments, true); err != nil {
986986
panic(err)
987987
}
988988

@@ -1196,7 +1196,7 @@ func applyTemplate(p param) (*swaggerObject, error) {
11961196
//
11971197
// If there is no 'Summary', the same behavior will be attempted on 'Title',
11981198
// but only if the last character is not a period.
1199-
func updateSwaggerDataFromComments(swaggerObject interface{}, comment string, typeName string) error {
1199+
func updateSwaggerDataFromComments(swaggerObject interface{}, comment string, isPackageObject bool) error {
12001200
if len(comment) == 0 {
12011201
return nil
12021202
}
@@ -1229,7 +1229,7 @@ func updateSwaggerDataFromComments(swaggerObject interface{}, comment string, ty
12291229
if !usingTitle || (len(summary) > 0 && summary[len(summary)-1] != '.') {
12301230
// overrides the schema value only if it's empty
12311231
// keep the comment precedence when updating the package definition
1232-
if summaryValue.Len() == 0 || typeName == "Package" {
1232+
if summaryValue.Len() == 0 || isPackageObject {
12331233
summaryValue.Set(reflect.ValueOf(summary))
12341234
}
12351235
if len(description) > 0 {
@@ -1238,7 +1238,7 @@ func updateSwaggerDataFromComments(swaggerObject interface{}, comment string, ty
12381238
}
12391239
// overrides the schema value only if it's empty
12401240
// keep the comment precedence when updating the package definition
1241-
if descriptionValue.Len() == 0 || typeName == "Package" {
1241+
if descriptionValue.Len() == 0 || isPackageObject {
12421242
descriptionValue.Set(reflect.ValueOf(description))
12431243
}
12441244
}
@@ -1248,7 +1248,7 @@ func updateSwaggerDataFromComments(swaggerObject interface{}, comment string, ty
12481248

12491249
// There was no summary field on the swaggerObject. Try to apply the
12501250
// whole comment into description if the swagger object description is empty.
1251-
if descriptionValue.CanSet() && descriptionValue.Len() == 0 {
1251+
if descriptionValue.CanSet() && (descriptionValue.Len() == 0 || isPackageObject){
12521252
descriptionValue.Set(reflect.ValueOf(strings.Join(paragraphs, "\n\n")))
12531253
return nil
12541254
}

0 commit comments

Comments
 (0)