From 38debbb1b1117957b4694bbae79e7be0e79ced60 Mon Sep 17 00:00:00 2001 From: Tit Petric Date: Wed, 5 Dec 2018 13:27:55 +0000 Subject: [PATCH] upd(rbac): user create returns valid user now --- internal/rbac/types/structs.go | 1 + internal/rbac/users.go | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/rbac/types/structs.go b/internal/rbac/types/structs.go index 8bf48cde9..c2ee12bfb 100644 --- a/internal/rbac/types/structs.go +++ b/internal/rbac/types/structs.go @@ -2,6 +2,7 @@ package types type ( User struct { + UserID string `json:"userid"` Username string `json:"username"` AssignedRoles []string `json:"assignedRoles"` AuthorizedRoles []string `json:"authorizedRoles"` diff --git a/internal/rbac/users.go b/internal/rbac/users.go index 2bc174c3e..68bb365a0 100644 --- a/internal/rbac/users.go +++ b/internal/rbac/users.go @@ -13,7 +13,7 @@ type ( } UsersInterface interface { - Create(username, password string) error + Create(username, password string) (*types.User, error) Get(username string) (*types.User, error) Delete(username string) error @@ -23,7 +23,7 @@ type ( ) const ( - usersCreate = "/users/%s" + usersCreate = "/users/" usersGet = "/users/%s" usersDelete = "/users/%s" // @todo: plural for users, but singular for sessions @@ -31,21 +31,23 @@ const ( usersRemoveRole = "/users/%s/deassignRoles" ) -func (u *Users) Create(username, password string) error { +func (u *Users) Create(username, password string) (*types.User, error) { body := struct { + Username string `json:"username"` Password string `json:"password"` - }{password} + }{username, password} - resp, err := u.Client.Post(fmt.Sprintf(usersCreate, username), body) + resp, err := u.Client.Post(usersCreate, body) if err != nil { - return errors.Wrap(err, "request failed") + return nil, errors.Wrap(err, "request failed") } defer resp.Body.Close() switch resp.StatusCode { case 200: - return nil + user := &types.User{} + return user, errors.Wrap(json.NewDecoder(resp.Body).Decode(user), "decoding json failed") default: - return toError(resp) + return nil, toError(resp) } }