Skip to content
Snippets Groups Projects
Commit dbee3009 authored by Andreas's avatar Andreas
Browse files

refactor/Updated getUserByNameAndFilter to actually work

parent cc168249
No related branches found
No related tags found
1 merge request!93getUsersByNameAndFilter is able to search for just friends
Pipeline #285165 passed
...@@ -228,6 +228,7 @@ public class UserController { ...@@ -228,6 +228,7 @@ public class UserController {
@PathVariable String searchTerm, @PathVariable String searchTerm,
@PathVariable @Enumerator(value = SearchFilter.class, @PathVariable @Enumerator(value = SearchFilter.class,
message = "Invalid filter") String filter) { 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<User> users = userService.getUsersByNameAndFilter(identity.getId(), searchTerm, SearchFilter.valueOf(filter));
List<UserDTO> userDTOs = new ArrayList<>(); List<UserDTO> userDTOs = new ArrayList<>();
for(User user : users) { for(User user : users) {
......
...@@ -51,6 +51,7 @@ import java.util.List; ...@@ -51,6 +51,7 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.UUID; import java.util.UUID;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator;
/** /**
* Implementation of the UserService interface for user-related operations. * Implementation of the UserService interface for user-related operations.
...@@ -410,13 +411,21 @@ public class UserServiceImpl implements UserService { ...@@ -410,13 +411,21 @@ public class UserServiceImpl implements UserService {
public List<User> getUsersByNameAndFilter(Long userId, String searchTerm, SearchFilter filter) { public List<User> getUsersByNameAndFilter(Long userId, String searchTerm, SearchFilter filter) {
List<User> users = userRepository.findUsersByName(searchTerm); List<User> users = userRepository.findUsersByName(searchTerm);
users.removeIf(user -> user.getId().equals(userId)); users.removeIf(user -> user.getId().equals(userId));
List<User> friends = new ArrayList<>();
switch (filter) { switch (filter) {
case NON_FRIENDS: case NON_FRIENDS:
List<User> friends = getFriends(userId); friends = getFriends(userId);
users.removeAll(friends); users.removeAll(friends);
break; break;
case FRIENDS: 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; break;
} }
return users; return users;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment