From 2ad17ce219b9f99ba9df54b789f21aaaec5bea6d Mon Sep 17 00:00:00 2001 From: Johan Droz Date: Mon, 19 Feb 2018 17:02:57 +0100 Subject: [PATCH] Update error handling, avoid error when reply is not json --- client/client.go | 17 ++++------------- client/user_test.go | 5 +++-- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/client/client.go b/client/client.go index cc1ce13..1fd884f 100644 --- a/client/client.go +++ b/client/client.go @@ -141,7 +141,7 @@ func (c *Client) get(data interface{}, plugins ...plugin.Plugin) error { } return c.get(data, plugins...) case resp.StatusCode >= 400: - return handleError(resp) + return fmt.Errorf("invalid status code: '%v': %v", resp.RawResponse.Status, string(resp.Bytes())) case resp.StatusCode >= 200: return json.Unmarshal(resp.Bytes(), data) default: @@ -173,7 +173,7 @@ func (c *Client) post(plugins ...plugin.Plugin) error { } return c.post(plugins...) case resp.StatusCode >= 400: - return handleError(resp) + return fmt.Errorf("invalid status code: '%v': %v", resp.RawResponse.Status, string(resp.Bytes())) case resp.StatusCode >= 200: return nil default: @@ -205,7 +205,7 @@ func (c *Client) delete(plugins ...plugin.Plugin) error { } return c.delete(plugins...) case resp.StatusCode >= 400: - return handleError(resp) + return fmt.Errorf("invalid status code: '%v': %v", resp.RawResponse.Status, string(resp.Bytes())) case resp.StatusCode >= 200: return nil default: @@ -237,7 +237,7 @@ func (c *Client) put(plugins ...plugin.Plugin) error { } return c.put(plugins...) case resp.StatusCode >= 400: - return handleError(resp) + return fmt.Errorf("invalid status code: '%v': %v", resp.RawResponse.Status, string(resp.Bytes())) case resp.StatusCode >= 200: return nil default: @@ -254,15 +254,6 @@ func applyPlugins(req *gentleman.Request, accessToken string, plugins ...plugin. return r } -func handleError(resp *gentleman.Response) error { - var m = map[string]string{} - var err = json.Unmarshal(resp.Bytes(), &m) - if err != nil { - return fmt.Errorf("invalid status code: %v; could not unmarshal response: %v", resp.StatusCode, err) - } - return fmt.Errorf("error message: %v", m) -} - func str(s string) *string { return &s } diff --git a/client/user_test.go b/client/user_test.go index 9d7d610..354fdc9 100644 --- a/client/user_test.go +++ b/client/user_test.go @@ -38,12 +38,13 @@ func TestCountUsers(t *testing.T) { assert.Nil(t, err) assert.NotZero(t, count) } + func TestGetUser(t *testing.T) { var client = initTest(t) var user UserRepresentation { var err error - user, err = client.GetUser("__internal", "eb8b75ea-305d-40f6-87e5-ac8e16979c40") + user, err = client.GetUser("__internal", "e8b96f33-1d14-463d-80db-294c4db249ab") require.Nil(t, err, "could not get users") assert.NotZero(t, *user.Username) } @@ -55,7 +56,7 @@ func TestUpdateUser(t *testing.T) { var user = UserRepresentation{ Email: str("john.doe@elca.ch"), } - var err = client.UpdateUser("__internal", "eb8b75ea-305d-40f6-87e5-ac8e16979c40", user) + var err = client.UpdateUser("__internal", "e8b96f33-1d14-463d-80db-294c4db249aa", user) assert.Nil(t, err) } func TestDeleteUser(t *testing.T) {