in auth/user_mgt.go [880:921]
func (c *baseClient) GetUsers(
ctx context.Context, identifiers []UserIdentifier,
) (*GetUsersResult, error) {
if len(identifiers) == 0 {
return &GetUsersResult{[](*UserRecord){}, [](UserIdentifier){}}, nil
} else if len(identifiers) > maxGetAccountsBatchSize {
return nil, fmt.Errorf(
"`identifiers` parameter must have <= %d entries", maxGetAccountsBatchSize)
}
var request getAccountInfoRequest
for i := range identifiers {
identifiers[i].populate(&request)
}
if err := request.validate(); err != nil {
return nil, err
}
var parsed getAccountInfoResponse
if _, err := c.post(ctx, "/accounts:lookup", request, &parsed); err != nil {
return nil, err
}
var userRecords [](*UserRecord)
for _, user := range parsed.Users {
userRecord, err := user.makeUserRecord()
if err != nil {
return nil, err
}
userRecords = append(userRecords, userRecord)
}
var notFound []UserIdentifier
for i := range identifiers {
if !isUserFound(identifiers[i], userRecords) {
notFound = append(notFound, identifiers[i])
}
}
return &GetUsersResult{userRecords, notFound}, nil
}