Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit dc27531

Browse files
authored
Merge pull request #24 from philips-software/feature/legacy-find-user
Support legacy find user by loginID call
2 parents 6d32ee1 + 60cf328 commit dc27531

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

iam/users_service.go

+28
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,34 @@ func (u *UsersService) GetUserIDByLoginID(loginID string) (string, *Response, er
313313
return user.ID, resp, nil
314314
}
315315

316+
// LegacyGetUserIDByLoginID looks up the UUID of a user by LoginID (email address)
317+
func (u *UsersService) LegacyGetUserIDByLoginID(loginID string) (string, *Response, error) {
318+
opt := &GetUserOptions{
319+
LoginID: &loginID,
320+
}
321+
req, _ := u.client.NewRequest(IDM, "GET", "security/users", opt, nil)
322+
req.Header.Set("api-version", userAPIVersion)
323+
324+
var responseStruct struct {
325+
Exchange struct {
326+
Users []struct {
327+
UserUUID string `json:"userUUID"`
328+
} `json:"users"`
329+
} `json:"exchange"`
330+
ResponseCode string `json:"responseCode"`
331+
ResponseMessage string `json:"responseMessage"`
332+
}
333+
334+
resp, err := u.client.Do(req, &responseStruct)
335+
if err != nil {
336+
return "", resp, err
337+
}
338+
if len(responseStruct.Exchange.Users) == 0 {
339+
return "", resp, ErrEmptyResults
340+
}
341+
return responseStruct.Exchange.Users[0].UserUUID, resp, nil
342+
}
343+
316344
// SetMFA activate Multi-Factor-Authentication for the given UUID. See also SetMFAByLoginID.
317345
func (u *UsersService) SetMFA(userID string, activate bool) (bool, *Response, error) {
318346
activateString := "true"

iam/users_service_test.go

+11-2
Original file line numberDiff line numberDiff line change
@@ -207,11 +207,11 @@ func TestGetUsers(t *testing.T) {
207207
return
208208
}
209209
qp := r.URL.Query()
210-
if ps := qp.Get("pageSize"); ps != "5" {
210+
if ps := qp.Get("pageSize"); ps != "" && ps != "5" {
211211
t.Errorf("Expected pageSize to be 5, Got: %s", ps)
212212
return
213213
}
214-
if pn := qp.Get("pageNumber"); pn != "1" {
214+
if pn := qp.Get("pageNumber"); pn != "" && pn != "1" {
215215
t.Errorf("Expected pageNumber to be 1, Got: %s", pn)
216216
return
217217
}
@@ -260,6 +260,15 @@ func TestGetUsers(t *testing.T) {
260260
assert.Equal(t, http.StatusOK, resp.StatusCode)
261261
assert.Equal(t, 5, len(list.UserUUIDs))
262262
assert.True(t, list.HasNextPage)
263+
264+
foundUser, resp, err := client.Users.LegacyGetUserIDByLoginID("foo")
265+
if !assert.NotNil(t, resp) {
266+
return
267+
}
268+
if !assert.Nil(t, err) {
269+
return
270+
}
271+
assert.Equal(t, "7dbfe5fc-1320-4bc6-92a7-2be5d7f07cac", foundUser)
263272
}
264273

265274
func userIDByLoginIDHandler(t *testing.T, loginID, email, userUUID string) func(http.ResponseWriter, *http.Request) {

0 commit comments

Comments
 (0)