diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/controller/user/UserController.java b/src/main/java/no/ntnu/idi/stud/savingsapp/controller/user/UserController.java index 35a8e39ec8bcdc41e7d72f540943e25c4cf54d6a..46b709d10cdc8bafcd66f651d7854910477cccb5 100644 --- a/src/main/java/no/ntnu/idi/stud/savingsapp/controller/user/UserController.java +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/controller/user/UserController.java @@ -228,6 +228,7 @@ public class UserController { @PathVariable String searchTerm, @PathVariable @Enumerator(value = SearchFilter.class, message = "Invalid filter") String filter) { + log.info("[UserController:getUsersByNameAndFilter] searchTerm: {}, filter: {}", searchTerm, filter); List<User> users = userService.getUsersByNameAndFilter(identity.getId(), searchTerm, SearchFilter.valueOf(filter)); List<UserDTO> userDTOs = new ArrayList<>(); for(User user : users) { diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java b/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java index f039a2b03e3e4936f0ea94d7c54bdb15819ab2f5..d80a464ab9b296b2ffcf73a968af4a2d38bbf6f3 100644 --- a/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java @@ -51,6 +51,7 @@ import java.util.List; import java.util.Optional; import java.util.UUID; import java.util.Collections; +import java.util.Iterator; /** * Implementation of the UserService interface for user-related operations. @@ -410,13 +411,21 @@ public class UserServiceImpl implements UserService { public List<User> getUsersByNameAndFilter(Long userId, String searchTerm, SearchFilter filter) { List<User> users = userRepository.findUsersByName(searchTerm); users.removeIf(user -> user.getId().equals(userId)); + List<User> friends = new ArrayList<>(); switch (filter) { case NON_FRIENDS: - List<User> friends = getFriends(userId); + friends = getFriends(userId); users.removeAll(friends); break; case FRIENDS: - users = getFriends(userId); + friends = getFriends(userId); + Iterator<User> iterator = users.iterator(); + while (iterator.hasNext()) { + User user = iterator.next(); + if (!friends.contains(user)) { + iterator.remove(); + } + } break; } return users;