[Fix] Fixed anded searching in REST calls for Users, Sessions and OperationsLog
This commit is contained in:
parent
5267ff1e1c
commit
543810c8f9
|
@ -1,6 +1,7 @@
|
|||
package li.strolch.rest.endpoint;
|
||||
|
||||
import static java.util.Comparator.comparing;
|
||||
import static li.strolch.search.SearchBuilder.buildSimpleValueSearch;
|
||||
import static li.strolch.utils.helper.StringHelper.isNotEmpty;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
@ -11,6 +12,7 @@ import javax.ws.rs.core.Response;
|
|||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -24,6 +26,7 @@ import li.strolch.rest.RestfulStrolchComponent;
|
|||
import li.strolch.rest.StrolchRestfulConstants;
|
||||
import li.strolch.rest.helper.ResponseUtil;
|
||||
import li.strolch.runtime.privilege.PrivilegeHandler;
|
||||
import li.strolch.search.ValueSearch;
|
||||
import li.strolch.utils.collections.Paging;
|
||||
|
||||
@Path("strolch/operations-log")
|
||||
|
@ -57,8 +60,9 @@ public class OperationsLogResource {
|
|||
}
|
||||
|
||||
if (isNotEmpty(query)) {
|
||||
messages = messages.filter(logMessage -> logMessage.getMessage().toLowerCase().contains(query) //
|
||||
|| logMessage.getLocator().getPathElements().contains(query));
|
||||
ValueSearch<LogMessage> valueSearch = buildSimpleValueSearch(new ValueSearch<>(), query,
|
||||
Arrays.asList(LogMessage::getMessage, m -> m.getLocator().toString()));
|
||||
messages = valueSearch.search(messages).asStream();
|
||||
}
|
||||
|
||||
if (isNotEmpty(fromS) && isNotEmpty(toS)) {
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
package li.strolch.rest.endpoint;
|
||||
|
||||
import static li.strolch.rest.helper.RestfulHelper.toJson;
|
||||
import static li.strolch.search.ValueSearchExpressionBuilder.collectionContains;
|
||||
import static li.strolch.search.ValueSearchExpressionBuilder.containsIgnoreCase;
|
||||
import static li.strolch.search.SearchBuilder.buildSimpleValueSearch;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.*;
|
||||
|
@ -25,6 +24,7 @@ import javax.ws.rs.core.Context;
|
|||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
@ -68,12 +68,12 @@ public class PrivilegeUsersService {
|
|||
|
||||
String query = queryData.getQuery();
|
||||
List<UserRep> users = privilegeHandler.getUsers(cert);
|
||||
SearchResult<UserRep> result = new ValueSearch<UserRep>() //
|
||||
.where(containsIgnoreCase(UserRep::getUsername, query) //
|
||||
.or(containsIgnoreCase(UserRep::getFirstname, query)) //
|
||||
.or(containsIgnoreCase(UserRep::getLastname, query)) //
|
||||
.or(collectionContains(UserRep::getRoles, query)) //
|
||||
).search(users);
|
||||
SearchResult<UserRep> result = buildSimpleValueSearch(new ValueSearch<UserRep>(), query, Arrays.asList( //
|
||||
UserRep::getUsername, //
|
||||
UserRep::getFirstname, //
|
||||
UserRep::getLastname, //
|
||||
userRep -> userRep.getUserState().name(), //
|
||||
UserRep::getRoles)).search(users);
|
||||
|
||||
PrivilegeElementToJsonVisitor visitor = new PrivilegeElementToJsonVisitor();
|
||||
JsonObject root = toJson(queryData, users.size(), result, t -> t.accept(visitor));
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
package li.strolch.rest.endpoint;
|
||||
|
||||
import static li.strolch.rest.helper.RestfulHelper.toJson;
|
||||
import static li.strolch.search.ValueSearchExpressionBuilder.collectionContains;
|
||||
import static li.strolch.search.ValueSearchExpressionBuilder.containsIgnoreCase;
|
||||
import static li.strolch.search.SearchBuilder.buildSimpleValueSearch;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.ws.rs.*;
|
||||
|
@ -25,6 +24,7 @@ import javax.ws.rs.core.Context;
|
|||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
|
@ -57,12 +57,13 @@ public class UserSessionsService {
|
|||
|
||||
String query = queryData.getQuery();
|
||||
List<UserSession> sessions = sessionHandler.getSessions(cert);
|
||||
SearchResult<UserSession> result = new ValueSearch<UserSession>() //
|
||||
.where(containsIgnoreCase(UserSession::getUsername, query) //
|
||||
.or(containsIgnoreCase(UserSession::getFirstname, query)) //
|
||||
.or(containsIgnoreCase(UserSession::getLastname, query)) //
|
||||
.or(collectionContains(UserSession::getUserRoles, query)) //
|
||||
).search(sessions);
|
||||
|
||||
SearchResult<UserSession> result = buildSimpleValueSearch(new ValueSearch<UserSession>(), query,
|
||||
Arrays.asList( //
|
||||
UserSession::getUsername, //
|
||||
UserSession::getFirstname, //
|
||||
UserSession::getLastname, //
|
||||
UserSession::getUserRoles)).search(sessions);
|
||||
|
||||
JsonObject root = toJson(queryData, sessions.size(), result, UserSession::toJson);
|
||||
Gson gson = new GsonBuilder().setPrettyPrinting().create();
|
||||
|
|
Loading…
Reference in New Issue