Fixed user search

This commit is contained in:
Andrey Terentev 2024-03-13 13:49:52 +07:00 committed by Andrey Terentev
parent 9f2aeaa06e
commit d1e97bf3b2
2 changed files with 20 additions and 1 deletions

View File

@ -8,6 +8,8 @@ import lombok.extern.log4j.Log4j2;
import ru.dragonestia.picker.api.exception.ApiException; import ru.dragonestia.picker.api.exception.ApiException;
import ru.dragonestia.picker.cp.component.Notifications; import ru.dragonestia.picker.cp.component.Notifications;
import java.security.InvalidParameterException;
@Log4j2 @Log4j2
public class ApplicationErrorHandler implements ErrorHandler { public class ApplicationErrorHandler implements ErrorHandler {
@ -25,6 +27,13 @@ public class ApplicationErrorHandler implements ErrorHandler {
return; return;
} }
if (errorEvent.getThrowable() instanceof InvalidParameterException ex) {
execute(() -> {
Notifications.error(ex.getMessage());
});
return;
}
execute(() -> { execute(() -> {
Notifications.error("Internal server error"); Notifications.error("Internal server error");
}); });

View File

@ -43,7 +43,7 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable {
foundUsers = new Span(); foundUsers = new Span();
add(fieldUsername = createUsernameInputField()); add(fieldUsername = createUsernameInputField());
add(userGrid = createUserGrid()); add(userGrid = createUserGrid());
refresh(); justRefresh();
} }
private TextField createUsernameInputField() { private TextField createUsernameInputField() {
@ -91,6 +91,11 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable {
} }
private void search(String input) { private void search(String input) {
System.out.println("Input: " + input);
if (input.isEmpty()) {
userGrid.setItems();
}
userGrid.setItems(cachedUsers = userRepository.searchUsers(SearchUsers.withAllDetails(UserIdentifier.of(input))) userGrid.setItems(cachedUsers = userRepository.searchUsers(SearchUsers.withAllDetails(UserIdentifier.of(input)))
.stream().map(user -> (IUser) user).toList()); .stream().map(user -> (IUser) user).toList());
} }
@ -100,4 +105,9 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable {
search(fieldUsername.getValue().trim()); search(fieldUsername.getValue().trim());
foundUsers.setText("Found %s users".formatted(cachedUsers.size())); foundUsers.setText("Found %s users".formatted(cachedUsers.size()));
} }
public void justRefresh() {
userGrid.setItems();
foundUsers.setText("Found %s users".formatted(cachedUsers.size()));
}
} }