StatusCode check in api_grafeas_v1_beta1.go
- Dominant language
- Go
- Stars
- 11
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Description
### **Problem**
Nested if statement that checks for `StatusCode == 200` is always [ignored](https://github.com/grafeas/client-go/blob/master/0.1.0/api_grafeas_v1_beta1.go#L97):
```go
if localVarHttpResponse.StatusCode < 300 {
// If we succeed, return the data, otherwise pass on to decode error.
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
if err == nil {
return localVarReturnValue, localVarHttpResponse, err
}
}
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericSwaggerError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
//the issue is here
if localVarHttpResponse.StatusCode == 200 {
var v V1beta1BatchCreateNotesResponse
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHttpResponse, newErr
}
newErr.model = v
return localVarReturnValue, localVarHttpResponse, newErr
}
return localVarReturnValue, localVarHttpResponse, newErr
}
```
This code checks if the `StatusCode` value is more than 300, and, if it is true, it checks if the `StatusCode` is equal to 200, which means that this nested if statement will never be true.
I did not observe any issues happening because of this problem because if `StatusCode == 200` the [if statement above](https://github.com/grafeas/client-go/blob/master/0.1.0/api_grafeas_v1_beta1.go#L89) (`if localVarHttpResponse.StatusCode < 300 `) will be executed.
This problem reoccurs for every function in `api_grafeas_v1_beta1.go` that expects a response.
### **Potential Solution**
Move `StatusCode == 200` if statement inside of `if localVarHttpResponse.StatusCode < 300 {}` or before it, e.g.:
```go
if localVarHttpResponse.StatusCode < 300 {
// If we succeed, return the data, otherwise pass on to decode error.
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
if localVarHttpResponse.StatusCode == 200 {
if err != nil {
newErr.error = err.Error()
return localVarReturnValue, localVarHttpResponse, newErr
}
newErr.model = localVarReturnValue
return localVarReturnValue, localVarHttpResponse, newErr
}
if err == nil {
return localVarReturnValue, localVarHttpResponse, err
}
}
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericSwaggerError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
return localVarReturnValue, localVarHttpResponse, newErr
}
```
Contributor guide
Assessment
This issue has not been assessed yet.