3
0

upd(rbac): user create returns valid user now

This commit is contained in:
Tit Petric 2018-12-05 13:27:55 +00:00
parent f92d7a96f0
commit 38debbb1b1
2 changed files with 11 additions and 8 deletions

View File

@ -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"`

View File

@ -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)
}
}