INNER CODE UNIT · Go
checkHTTPStatusCode
dikhan/terraform-provider-openapi · openapi/common.go:34
func checkHTTPStatusCode(openAPIResource SpecResource, res *http.Response, expectedHTTPStatusCodes []int) error {
if !responseContainsExpectedStatus(expectedHTTPStatusCodes, res.StatusCode) {
var resBody string
if res.Body != nil {
b, err := ioutil.ReadAll(res.Body)
if err != nil {
return fmt.Errorf("[resource='%s'] HTTP Response Status Code %d - Error '%s' occurred while reading the response body", openAPIResource.GetResourceName(), res.StatusCode, err)
}
if b != nil && len(b) > 0 {
resBody = string(b)
}
}
switch res.StatusCode {
case http.StatusUnauthorized:
return fmt.Errorf("[resource='%s'] HTTP Response Status Code %d - Unauthorized: API access is denied due to invalid credentials (%s)", openAPIResource.GetResourceName(), res.StatusCode, resBody)
case http.StatusNotFound:
return &openapierr.NotFoundError{OriginalError: fmt.Errorf("HTTP Response Status Code %d - Not Found. Could not find resource instance: %s", res.StatusCode, resBody)}
default: