Skip to content

Commit 8540c82

Browse files
authored
Add handling for parsing optional bool params & regenerate samples (#14550)
1 parent b538c2a commit 8540c82

5 files changed

Lines changed: 37 additions & 5 deletions

File tree

modules/openapi-generator/src/main/resources/go-server/controller-api.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ func (c *{{classname}}Controller) {{nickname}}(w http.ResponseWriter, r *http.Re
124124
}
125125
{{/isInteger}}
126126
{{#isBoolean}}
127-
{{paramName}}Param, err := parseBoolParameter(query.Get("{{baseName}}"))
127+
{{paramName}}Param, err := parseBoolParameter(query.Get("{{baseName}}"), {{required}})
128128
if err != nil {
129129
w.WriteHeader(500)
130130
return

modules/openapi-generator/src/main/resources/go-server/routers.mustache

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,15 @@ func parseInt32Parameter(param string, required bool) (int32, error) {
199199
}
200200

201201
// parseBoolParameter parses a string parameter to a bool
202-
func parseBoolParameter(param string) (bool, error) {
202+
func parseBoolParameter(param string, required bool) (bool, error) {
203+
if param == "" {
204+
if required {
205+
return false, errors.New(errMsgRequiredMissing)
206+
}
207+
208+
return false, nil
209+
}
210+
203211
val, err := strconv.ParseBool(param)
204212
if err != nil {
205213
return false, err

samples/server/petstore/go-api-server/go/routers.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,15 @@ func parseInt32Parameter(param string, required bool) (int32, error) {
167167
}
168168

169169
// parseBoolParameter parses a string parameter to a bool
170-
func parseBoolParameter(param string) (bool, error) {
170+
func parseBoolParameter(param string, required bool) (bool, error) {
171+
if param == "" {
172+
if required {
173+
return false, errors.New(errMsgRequiredMissing)
174+
}
175+
176+
return false, nil
177+
}
178+
171179
val, err := strconv.ParseBool(param)
172180
if err != nil {
173181
return false, err

samples/server/petstore/go-chi-server/go/routers.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,15 @@ func parseInt32Parameter(param string, required bool) (int32, error) {
163163
}
164164

165165
// parseBoolParameter parses a string parameter to a bool
166-
func parseBoolParameter(param string) (bool, error) {
166+
func parseBoolParameter(param string, required bool) (bool, error) {
167+
if param == "" {
168+
if required {
169+
return false, errors.New(errMsgRequiredMissing)
170+
}
171+
172+
return false, nil
173+
}
174+
167175
val, err := strconv.ParseBool(param)
168176
if err != nil {
169177
return false, err

samples/server/petstore/go-server-required/go/routers.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,15 @@ func parseInt32Parameter(param string, required bool) (int32, error) {
163163
}
164164

165165
// parseBoolParameter parses a string parameter to a bool
166-
func parseBoolParameter(param string) (bool, error) {
166+
func parseBoolParameter(param string, required bool) (bool, error) {
167+
if param == "" {
168+
if required {
169+
return false, errors.New(errMsgRequiredMissing)
170+
}
171+
172+
return false, nil
173+
}
174+
167175
val, err := strconv.ParseBool(param)
168176
if err != nil {
169177
return false, err

0 commit comments

Comments
 (0)