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 {
@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) {
......
......@@ -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;
......
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