private SearchMembersWsResponse buildResponse(List<UserDto> users, Common.Paging wsPaging, @Nullable Multiset<String> groupCountByLogin) { SearchMembersWsResponse.Builder response = SearchMembersWsResponse.newBuilder(); User.Builder wsUser = User.newBuilder(); users.stream() .map(userDto -> { String login = userDto.getLogin(); wsUser .clear() .setLogin(login) .setName(userDto.getName()); ofNullable(emptyToNull(userDto.getEmail())).ifPresent(text -> wsUser.setAvatar(avatarResolver.create(userDto))); ofNullable(groupCountByLogin).ifPresent(count -> wsUser.setGroupCount(groupCountByLogin.count(login))); return wsUser; }) .forEach(response::addUsers); response.setPaging(wsPaging); return response.build(); }
@Test public void return_user_info_even_when_user_is_already_member_of_organization() { OrganizationDto organization = db.organizations().insert(); db.users().insertDefaultGroup(organization, "default"); UserDto user = db.users().insertUser(u -> u.setEmail("john@smith.com")); IntStream.range(0, 3) .mapToObj(i -> db.users().insertGroup(organization)) .forEach(g -> db.users().insertMembers(g, user)); db.organizations().addMember(organization, user); AddMemberWsResponse result = call(organization.getKey(), user.getLogin()); assertThat(result.getUser().getLogin()).isEqualTo(user.getLogin()); assertThat(result.getUser().getName()).isEqualTo(user.getName()); assertThat(result.getUser().getAvatar()).isEqualTo("b0d8c6e5ea589e6fc3d3e08afb1873bb"); assertThat(result.getUser().getGroupCount()).isEqualTo(3); }
private SearchMembersWsResponse buildResponse(List<UserDto> users, Common.Paging wsPaging, @Nullable Multiset<String> groupCountByLogin) { SearchMembersWsResponse.Builder response = SearchMembersWsResponse.newBuilder(); User.Builder wsUser = User.newBuilder(); users.stream() .map(userDto -> { String login = userDto.getLogin(); wsUser .clear() .setLogin(login) .setName(userDto.getName()); setNullable(emptyToNull(userDto.getEmail()), text -> wsUser.setAvatar(avatarResolver.create(userDto))); setNullable(groupCountByLogin, count -> wsUser.setGroupCount(groupCountByLogin.count(login))); return wsUser; }) .forEach(response::addUsers); response.setPaging(wsPaging); return response.build(); }
private AddMemberWsResponse buildResponse(UserDto user, int groups) { AddMemberWsResponse.Builder response = AddMemberWsResponse.newBuilder(); User.Builder wsUser = User.newBuilder() .setLogin(user.getLogin()) .setName(user.getName()) .setGroupCount(groups); setNullable(emptyToNull(user.getEmail()), text -> wsUser.setAvatar(avatarResolver.create(user))); response.setUser(wsUser); return response.build(); }
@Test public void do_not_return_group_count_if_no_admin_permission() { OrganizationDto organization = db.organizations().insert(); logAsOrganizationMember(organization); UserDto user = db.users().insertUser(); db.organizations().addMember(organization, user); GroupDto group = db.users().insertGroup(); db.users().insertMember(group, user); indexAllUsers(); SearchMembersWsResponse result = ws.newRequest() .setParam("organization", organization.getKey()) .executeProtobuf(SearchMembersWsResponse.class); assertThat(result.getUsers(0).hasGroupCount()).isFalse(); }
@Test public void return_user_info() { OrganizationDto organization = db.organizations().insert(); db.users().insertDefaultGroup(organization, "default"); UserDto user = db.users().insertUser(u -> u.setEmail("john@smith.com")); AddMemberWsResponse result = call(organization.getKey(), user.getLogin()); assertThat(result.getUser().getLogin()).isEqualTo(user.getLogin()); assertThat(result.getUser().getName()).isEqualTo(user.getName()); assertThat(result.getUser().getAvatar()).isEqualTo("b0d8c6e5ea589e6fc3d3e08afb1873bb"); assertThat(result.getUser().getGroupCount()).isEqualTo(1); }
@Test public void return_avatar() { OrganizationDto organization = db.organizations().insert(); logAsOrganizationMember(organization); UserDto user = db.users().insertUser(u -> u.setEmail("email@domain.com")); db.organizations().addMember(organization, user); indexer.commitAndIndex(db.getSession(), user); SearchMembersWsResponse result = ws.newRequest() .setParam("organization", organization.getKey()) .executeProtobuf(SearchMembersWsResponse.class); assertThat(result.getUsers(0).getAvatar()).isEqualTo("7328fddefd53de471baeb6e2b764f78a"); }
private AddMemberWsResponse buildResponse(UserDto user, int groups) { AddMemberWsResponse.Builder response = AddMemberWsResponse.newBuilder(); User.Builder wsUser = User.newBuilder() .setLogin(user.getLogin()) .setName(user.getName()) .setGroupCount(groups); ofNullable(emptyToNull(user.getEmail())).ifPresent(text -> wsUser.setAvatar(avatarResolver.create(user))); response.setUser(wsUser); return response.build(); }