Browse Source

in case of error, parse it and include in the message only the errorMessage part

master
bsoniam 7 years ago
committed by Francis PEROT
parent
commit
1c7676253d
  1. 33
      keycloak_client.go

33
keycloak_client.go

@ -2,6 +2,7 @@ package keycloak
import (
"context"
"encoding/json"
"fmt"
"net/http"
"net/url"
@ -165,6 +166,14 @@ func (c *Client) get(accessToken string, data interface{}, plugins ...plugin.Plu
Message: string(resp.Bytes()),
}
case resp.StatusCode >= 400:
var response map[string]string
err := json.Unmarshal(resp.Bytes(), &response)
if message, ok := response["errorMessage"]; ok && err == nil {
return HTTPError{
HTTPStatus: resp.StatusCode,
Message: message,
}
}
return HTTPError{
HTTPStatus: resp.StatusCode,
Message: string(resp.Bytes()),
@ -210,6 +219,14 @@ func (c *Client) post(accessToken string, data interface{}, plugins ...plugin.Pl
Message: string(resp.Bytes()),
}
case resp.StatusCode >= 400:
var response map[string]string
err := json.Unmarshal(resp.Bytes(), &response)
if message, ok := response["errorMessage"]; ok && err == nil {
return "", HTTPError{
HTTPStatus: resp.StatusCode,
Message: message,
}
}
return "", HTTPError{
HTTPStatus: resp.StatusCode,
Message: string(resp.Bytes()),
@ -257,6 +274,14 @@ func (c *Client) delete(accessToken string, plugins ...plugin.Plugin) error {
Message: string(resp.Bytes()),
}
case resp.StatusCode >= 400:
var response map[string]string
err := json.Unmarshal(resp.Bytes(), &response)
if message, ok := response["errorMessage"]; ok && err == nil {
return HTTPError{
HTTPStatus: resp.StatusCode,
Message: message,
}
}
return HTTPError{
HTTPStatus: resp.StatusCode,
Message: string(resp.Bytes()),
@ -297,6 +322,14 @@ func (c *Client) put(accessToken string, plugins ...plugin.Plugin) error {
Message: string(resp.Bytes()),
}
case resp.StatusCode >= 400:
var response map[string]string
err := json.Unmarshal(resp.Bytes(), &response)
if message, ok := response["errorMessage"]; ok && err == nil {
return HTTPError{
HTTPStatus: resp.StatusCode,
Message: message,
}
}
return HTTPError{
HTTPStatus: resp.StatusCode,
Message: string(resp.Bytes()),

Loading…
Cancel
Save