@@ -170,15 +170,15 @@ func (v *validator) ValidateHttpRequestWithPathItem(request *http.Request, pathI
170
170
reqBodyValidator := v .requestValidator
171
171
172
172
// create some channels to handle async validation
173
- doneChan := make (chan bool )
173
+ doneChan := make (chan struct {} )
174
174
errChan := make (chan []* errors.ValidationError )
175
- controlChan := make (chan bool )
175
+ controlChan := make (chan struct {} )
176
176
177
177
// async param validation function.
178
- parameterValidationFunc := func (control chan bool , errorChan chan []* errors.ValidationError ) {
178
+ parameterValidationFunc := func (control chan struct {} , errorChan chan []* errors.ValidationError ) {
179
179
paramErrs := make (chan []* errors.ValidationError )
180
- paramControlChan := make (chan bool )
181
- paramFunctionControlChan := make (chan bool )
180
+ paramControlChan := make (chan struct {} )
181
+ paramFunctionControlChan := make (chan struct {} )
182
182
var paramValidationErrors []* errors.ValidationError
183
183
184
184
validations := []validationFunction {
@@ -190,7 +190,7 @@ func (v *validator) ValidateHttpRequestWithPathItem(request *http.Request, pathI
190
190
}
191
191
192
192
// listen for validation errors on parameters. everything will run async.
193
- paramListener := func (control chan bool , errorChan chan []* errors.ValidationError ) {
193
+ paramListener := func (control chan struct {} , errorChan chan []* errors.ValidationError ) {
194
194
completedValidations := 0
195
195
for {
196
196
select {
@@ -199,22 +199,22 @@ func (v *validator) ValidateHttpRequestWithPathItem(request *http.Request, pathI
199
199
case <- control :
200
200
completedValidations ++
201
201
if completedValidations == len (validations ) {
202
- paramFunctionControlChan <- true
202
+ paramFunctionControlChan <- struct {}{}
203
203
return
204
204
}
205
205
}
206
206
}
207
207
}
208
208
209
209
validateParamFunction := func (
210
- control chan bool ,
210
+ control chan struct {} ,
211
211
errorChan chan []* errors.ValidationError ,
212
212
validatorFunc validationFunction ) {
213
213
valid , pErrs := validatorFunc (request , pathItem , pathValue )
214
214
if ! valid {
215
215
errorChan <- pErrs
216
216
}
217
- control <- true
217
+ control <- struct {}{}
218
218
}
219
219
go paramListener (paramControlChan , paramErrs )
220
220
for i := range validations {
@@ -228,15 +228,15 @@ func (v *validator) ValidateHttpRequestWithPathItem(request *http.Request, pathI
228
228
}
229
229
230
230
// let runValidation know we are done with this part.
231
- controlChan <- true
231
+ controlChan <- struct {}{}
232
232
}
233
233
234
- requestBodyValidationFunc := func (control chan bool , errorChan chan []* errors.ValidationError ) {
234
+ requestBodyValidationFunc := func (control chan struct {} , errorChan chan []* errors.ValidationError ) {
235
235
valid , pErrs := reqBodyValidator .ValidateRequestBodyWithPathItem (request , pathItem , pathValue )
236
236
if ! valid {
237
237
errorChan <- pErrs
238
238
}
239
- control <- true
239
+ control <- struct {}{}
240
240
}
241
241
242
242
// build async functions
@@ -257,10 +257,7 @@ func (v *validator) ValidateHttpRequestWithPathItem(request *http.Request, pathI
257
257
258
258
// wait for all the validations to complete
259
259
<- doneChan
260
- if len (validationErrors ) > 0 {
261
- return false , validationErrors
262
- }
263
- return true , nil
260
+ return ! (len (validationErrors ) > 0 ), validationErrors
264
261
}
265
262
266
263
func (v * validator ) ValidateHttpRequestSync (request * http.Request ) (bool , []* errors.ValidationError ) {
@@ -300,12 +297,7 @@ func (v *validator) ValidateHttpRequestSyncWithPathItem(request *http.Request, p
300
297
}
301
298
302
299
validationErrors = append (validationErrors , paramValidationErrors ... )
303
-
304
- if len (validationErrors ) > 0 {
305
- return false , validationErrors
306
- }
307
-
308
- return true , nil
300
+ return ! (len (validationErrors ) > 0 ), validationErrors
309
301
}
310
302
311
303
type validator struct {
@@ -316,7 +308,7 @@ type validator struct {
316
308
responseValidator responses.ResponseBodyValidator
317
309
}
318
310
319
- func runValidation (control , doneChan chan bool ,
311
+ func runValidation (control , doneChan chan struct {} ,
320
312
errorChan chan []* errors.ValidationError ,
321
313
validationErrors * []* errors.ValidationError ,
322
314
total int ) {
@@ -332,12 +324,12 @@ func runValidation(control, doneChan chan bool,
332
324
case <- control :
333
325
completedValidations ++
334
326
if completedValidations == total {
335
- doneChan <- true
327
+ doneChan <- struct {}{}
336
328
return
337
329
}
338
330
}
339
331
}
340
332
}
341
333
342
334
type validationFunction func (request * http.Request , pathItem * v3.PathItem , pathValue string ) (bool , []* errors.ValidationError )
343
- type validationFunctionAsync func (control chan bool , errorChan chan []* errors.ValidationError )
335
+ type validationFunctionAsync func (control chan struct {} , errorChan chan []* errors.ValidationError )
0 commit comments