Skip to content

Commit 657b8ac

Browse files
fahernandezachew22
authored andcommitted
863 keeping comment precendece on swagger package definition
1 parent 3f14b68 commit 657b8ac

File tree

8 files changed

+18
-16
lines changed

8 files changed

+18
-16
lines changed

examples/clients/echo/api_client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* examples/proto/examplepb/echo_service.proto
2+
* Echo Service
33
*
44
* Echo Service API consists of a single service which returns a message.
55
*

examples/clients/echo/api_response.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* examples/proto/examplepb/echo_service.proto
2+
* Echo Service
33
*
44
* Echo Service API consists of a single service which returns a message.
55
*

examples/clients/echo/configuration.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* examples/proto/examplepb/echo_service.proto
2+
* Echo Service
33
*
44
* Echo Service API consists of a single service which returns a message.
55
*

examples/clients/echo/echo_service_api.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* examples/proto/examplepb/echo_service.proto
2+
* Echo Service
33
*
44
* Echo Service API consists of a single service which returns a message.
55
*

examples/clients/echo/examplepb_embedded.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* examples/proto/examplepb/echo_service.proto
2+
* Echo Service
33
*
44
* Echo Service API consists of a single service which returns a message.
55
*

examples/clients/echo/examplepb_simple_message.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* examples/proto/examplepb/echo_service.proto
2+
* Echo Service
33
*
44
* Echo Service API consists of a single service which returns a message.
55
*

examples/proto/examplepb/echo_service.swagger.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"swagger": "2.0",
33
"info": {
4-
"title": "examples/proto/examplepb/echo_service.proto",
4+
"title": "Echo Service",
55
"description": "Echo Service API consists of a single service which returns\na message.",
66
"version": "version not set"
77
},

protoc-gen-swagger/genswagger/template.go

Lines changed: 11 additions & 9 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); err != nil {
106+
if err := updateSwaggerDataFromComments(&schema, comments, "MessageType"); 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); err != nil {
261+
if err := updateSwaggerDataFromComments(&schema, msgComments, "MessageType"); 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); err != nil {
305+
if err := updateSwaggerDataFromComments(&fieldValue, comments, "MessageType"); 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); err != nil {
510+
if err := updateSwaggerDataFromComments(&enumSchemaObject, enumComments, "EnumType"); 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); err != nil {
861+
if err := updateSwaggerDataFromComments(operationObject, methComments, "Method"); 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); err != nil {
985+
if err := updateSwaggerDataFromComments(&s, packageComments, "Package"); 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) error {
1199+
func updateSwaggerDataFromComments(swaggerObject interface{}, comment string, typeName string) error {
12001200
if len(comment) == 0 {
12011201
return nil
12021202
}
@@ -1228,15 +1228,17 @@ func updateSwaggerDataFromComments(swaggerObject interface{}, comment string) er
12281228
description := strings.TrimSpace(strings.Join(paragraphs[1:], "\n\n"))
12291229
if !usingTitle || (len(summary) > 0 && summary[len(summary)-1] != '.') {
12301230
// overrides the schema value only if it's empty
1231-
if summaryValue.Len() == 0 {
1231+
// keep the comment precedence when updating the package definition
1232+
if summaryValue.Len() == 0 || typeName == "Package" {
12321233
summaryValue.Set(reflect.ValueOf(summary))
12331234
}
12341235
if len(description) > 0 {
12351236
if !descriptionValue.CanSet() {
12361237
return fmt.Errorf("Encountered object type with a summary, but no description")
12371238
}
12381239
// overrides the schema value only if it's empty
1239-
if descriptionValue.Len() == 0 {
1240+
// keep the comment precedence when updating the package definition
1241+
if descriptionValue.Len() == 0 || typeName == "Package" {
12401242
descriptionValue.Set(reflect.ValueOf(description))
12411243
}
12421244
}

0 commit comments

Comments
 (0)