Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SELC-4846] Fix: refactor retrieveFilteredUserInstitution to remove loggedUserId as filter parameter #450

Merged
merged 1 commit into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public interface UserApiConnector {

Collection<UserInfo> getUsers(String institutionId, UserInfo.UserInfoFilter userInfoFilter, String loggedUserId);

List<String> retrieveFilteredUserInstitution(String institutionId, UserInfo.UserInfoFilter userInfoFilter, String loggedUserId);
List<String> retrieveFilteredUserInstitution(String institutionId, UserInfo.UserInfoFilter userInfoFilter);

List<UserInstitution> retrieveFilteredUser(String userId, String institutionId, String productId);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ public Collection<UserInfo> getUsers(String institutionId, UserInfo.UserInfoFilt
}

@Override
public List<String> retrieveFilteredUserInstitution(String institutionId, UserInfo.UserInfoFilter userInfoFilter, String loggedUserId) {
public List<String> retrieveFilteredUserInstitution(String institutionId, UserInfo.UserInfoFilter userInfoFilter) {

return Optional.ofNullable(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(institutionId,
null,
Expand All @@ -189,7 +189,7 @@ public List<String> retrieveFilteredUserInstitution(String institutionId, UserIn
Optional.ofNullable(userInfoFilter.getAllowedStates())
.map(relationshipStates -> relationshipStates.stream().map(Enum::name).toList())
.orElse(null),
loggedUserId)
null)
.getBody()).map(userInstitutionResponses -> userInstitutionResponses.stream()
.map(UserInstitutionResponse::getUserId).toList())
.orElse(Collections.emptyList());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -426,14 +426,13 @@ public void retrieveFilteredUserInstitutionReturnsUserInstitutions() {
UserInfo.UserInfoFilter userInfoFilter = new UserInfo.UserInfoFilter();
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
userInfoFilter.setProductId("productId");
String loggedUserId = "loggedUserId";
List<UserInstitutionResponse> userInstitutionResponses = List.of(new UserInstitutionResponse(), new UserInstitutionResponse());
when(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(institutionId, null, List.of(userInfoFilter.getProductId()), null,
userInfoFilter.getAllowedStates().stream().map(Enum::name).toList(), loggedUserId))
userInfoFilter.getAllowedStates().stream().map(Enum::name).toList(), null))
.thenReturn(ResponseEntity.ok(userInstitutionResponses));

// When
List<String> result = userConnector.retrieveFilteredUserInstitution(institutionId, userInfoFilter, loggedUserId);
List<String> result = userConnector.retrieveFilteredUserInstitution(institutionId, userInfoFilter);

// Then
assertEquals(userInstitutionResponses.size(), result.size());
Expand All @@ -446,13 +445,12 @@ public void retrieveFilteredUserInstitutionReturnsEmptyListWhenNoUserInstitution
UserInfo.UserInfoFilter userInfoFilter = new UserInfo.UserInfoFilter();
userInfoFilter.setProductId("productId");
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
String loggedUserId = "loggedUserId";
when(userInstitutionApiRestClient._institutionsInstitutionIdUserInstitutionsGet(institutionId, null, List.of(userInfoFilter.getProductId()), null,
userInfoFilter.getAllowedStates().stream().map(Enum::name).toList(), loggedUserId))
userInfoFilter.getAllowedStates().stream().map(Enum::name).toList(), null))
.thenReturn(ResponseEntity.ok(List.of()));

// When
List<String> result = userConnector.retrieveFilteredUserInstitution(institutionId, userInfoFilter, loggedUserId);
List<String> result = userConnector.retrieveFilteredUserInstitution(institutionId, userInfoFilter);

// Then
assertEquals(0, result.size());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public String createUserGroup(CreateUserGroup group) {
userInfoFilter.setProductId(group.getProductId());
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));

List<String> retrievedId = retrievedIds(group.getInstitutionId(), userInfoFilter);
List<String> retrievedId = retrieveIds(group.getInstitutionId(), userInfoFilter);

if (group.getMembers().stream()
.filter(uuid -> Collections.binarySearch(retrievedId, uuid) >= 0)
Expand Down Expand Up @@ -82,12 +82,10 @@ public void activate(String groupId) {
log.trace("activate end");
}

private List<String> retrievedIds(String institutionId, UserInfo.UserInfoFilter userInfoFilter) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
String loggedUserId = ((SelfCareUser) authentication.getPrincipal()).getId();
private List<String> retrieveIds(String institutionId, UserInfo.UserInfoFilter userInfoFilter) {
List<String> retrievedUsers = userApiConnector.retrieveFilteredUserInstitution(
institutionId,
userInfoFilter, loggedUserId);
userInfoFilter);
return retrievedUsers.stream()
.sorted()
.toList();
Expand All @@ -112,7 +110,7 @@ public void updateUserGroup(String groupId, UpdateUserGroup group) {
userInfoFilter.setProductId(userGroupInfo.getProductId());
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));

List<String> retrievedId = retrievedIds(userGroupInfo.getInstitutionId(), userInfoFilter);
List<String> retrievedId = retrieveIds(userGroupInfo.getInstitutionId(), userInfoFilter);

if (group.getMembers().stream()
.filter(uuid -> Collections.binarySearch(retrievedId, uuid) >= 0)
Expand All @@ -133,7 +131,7 @@ public void addMemberToUserGroup(String groupId, UUID userId) {
UserInfo.UserInfoFilter userInfoFilter = new UserInfo.UserInfoFilter();
userInfoFilter.setProductId(retrievedGroup.getProductId());
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
List<String> retrievedIds = retrievedIds(retrievedGroup.getInstitutionId(), userInfoFilter);
List<String> retrievedIds = retrieveIds(retrievedGroup.getInstitutionId(), userInfoFilter);
if (!retrievedIds.contains(userId.toString())) {
throw new InvalidMemberListException("This user is not allowed for this group");
}
Expand Down Expand Up @@ -166,7 +164,7 @@ public UserGroupInfo getUserGroupById(String groupId, String institutionId) {
UserInfo.UserInfoFilter userInfoFilter = new UserInfo.UserInfoFilter();
userInfoFilter.setProductId(userGroupInfo.getProductId());
userInfoFilter.setAllowedStates(List.of(ACTIVE, SUSPENDED));
List<UserInfo> userInfos = retrievedIds(userGroupInfo.getInstitutionId(), userInfoFilter).stream()
List<UserInfo> userInfos = retrieveIds(userGroupInfo.getInstitutionId(), userInfoFilter).stream()
.map(id -> {
UserInfo userInfo = new UserInfo();
userInfo.setId(id);
Expand Down
Loading
Loading