Skip to content

Commit 9bb0d96

Browse files
Elliot Shepherdjohanbrandhorst
authored andcommitted
protoc-gen-swagger: return error when encoding swagger file
Previously, the error was being ignored
1 parent 5328886 commit 9bb0d96

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

protoc-gen-swagger/genswagger/generator.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,21 @@ func mergeTargetFile(targets []*wrapper, mergeFileName string) *wrapper {
6767
}
6868

6969
// convert swagger file obj to plugin.CodeGeneratorResponse_File
70-
func encodeSwagger(file *wrapper) *plugin.CodeGeneratorResponse_File {
70+
func encodeSwagger(file *wrapper) (*plugin.CodeGeneratorResponse_File, error) {
7171
var formatted bytes.Buffer
7272
enc := json.NewEncoder(&formatted)
7373
enc.SetIndent("", " ")
74-
enc.Encode(*file.swagger)
74+
if err := enc.Encode(*file.swagger); err != nil {
75+
return nil, err
76+
}
7577
name := file.fileName
7678
ext := filepath.Ext(name)
7779
base := strings.TrimSuffix(name, ext)
7880
output := fmt.Sprintf("%s.swagger.json", base)
7981
return &plugin.CodeGeneratorResponse_File{
8082
Name: proto.String(output),
8183
Content: proto.String(formatted.String()),
82-
}
84+
}, nil
8385
}
8486

8587
func (g *generator) Generate(targets []*descriptor.File) ([]*plugin.CodeGeneratorResponse_File, error) {
@@ -127,11 +129,19 @@ func (g *generator) Generate(targets []*descriptor.File) ([]*plugin.CodeGenerato
127129

128130
if g.reg.IsAllowMerge() {
129131
targetSwagger := mergeTargetFile(swaggers, g.reg.GetMergeFileName())
130-
files = append(files, encodeSwagger(targetSwagger))
132+
f, err := encodeSwagger(targetSwagger)
133+
if err != nil {
134+
return nil, fmt.Errorf("failed to encode swagger for %s: %s", g.reg.GetMergeFileName(), err)
135+
}
136+
files = append(files, f)
131137
glog.V(1).Infof("New swagger file will emit")
132138
} else {
133139
for _, file := range swaggers {
134-
files = append(files, encodeSwagger(file))
140+
f, err := encodeSwagger(file)
141+
if err != nil {
142+
return nil, fmt.Errorf("failed to encode swagger for %s: %s", file.fileName, err)
143+
}
144+
files = append(files, f)
135145
glog.V(1).Infof("New swagger file will emit")
136146
}
137147
}

0 commit comments

Comments
 (0)