This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/unomi.git
The following commit(s) were added to refs/heads/master by this push:
new aae9d47 UNOMI-283 Implement a new EventService.search(Query query)
method (#139)
aae9d47 is described below
commit aae9d47a0ff57a27c59d7be9325f31c12082c4f3
Author: Pavel Milkevich <[email protected]>
AuthorDate: Thu Mar 19 12:24:07 2020 +0300
UNOMI-283 Implement a new EventService.search(Query query) method (#139)
---
.../org/apache/unomi/api/services/EventService.java | 15 +++++++++++++--
.../unomi/services/impl/events/EventServiceImpl.java | 18 ++++++++++++++++++
2 files changed, 31 insertions(+), 2 deletions(-)
diff --git a/api/src/main/java/org/apache/unomi/api/services/EventService.java
b/api/src/main/java/org/apache/unomi/api/services/EventService.java
index c3a09d3..af0dbc0 100644
--- a/api/src/main/java/org/apache/unomi/api/services/EventService.java
+++ b/api/src/main/java/org/apache/unomi/api/services/EventService.java
@@ -23,6 +23,7 @@ import org.apache.unomi.api.PartialList;
import org.apache.unomi.api.Session;
import org.apache.unomi.api.actions.ActionPostExecutor;
import org.apache.unomi.api.conditions.Condition;
+import org.apache.unomi.api.query.Query;
import java.util.List;
import java.util.Set;
@@ -57,7 +58,8 @@ public interface EventService {
/**
* Check if the sender is allowed to sent the speecified event. Restricted
event must be explicitely allowed for a sender.
- * @param event event to test
+ *
+ * @param event event to test
* @param thirdPartyId third party id
* @return true if the event is allowed
*/
@@ -65,8 +67,9 @@ public interface EventService {
/**
* Get the third party server name, if the request is originated from a
known peer
+ *
* @param key the key
- * @param ip the ip
+ * @param ip the ip
* @return server name
*/
String authenticateThirdPartyServer(String key, String ip);
@@ -114,6 +117,14 @@ public interface EventService {
PartialList<Event> searchEvents(String sessionId, String[] eventTypes,
String query, int offset, int size, String sortBy);
/**
+ * Retrieves {@link Event}s matching the specified {@link Query}.
+ *
+ * @param query a {@link Query} specifying which Events to retrieve
+ * @return a {@link PartialList} of {@code Event} instances matching the
specified query
+ */
+ PartialList<Event> search(Query query);
+
+ /**
* Checks whether the specified event has already been raised either for
the associated session or profile depending on the specified {@code session}
parameter.
*
* @param event the event we want to check
diff --git
a/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
b/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
index ab1cd77..4162549 100644
---
a/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
+++
b/services/src/main/java/org/apache/unomi/services/impl/events/EventServiceImpl.java
@@ -26,6 +26,7 @@ import org.apache.unomi.api.PartialList;
import org.apache.unomi.api.Session;
import org.apache.unomi.api.actions.ActionPostExecutor;
import org.apache.unomi.api.conditions.Condition;
+import org.apache.unomi.api.query.Query;
import org.apache.unomi.api.services.DefinitionsService;
import org.apache.unomi.api.services.EventListenerService;
import org.apache.unomi.api.services.EventService;
@@ -250,6 +251,23 @@ public class EventServiceImpl implements EventService {
}
}
+ @Override
+ public PartialList<Event> search(Query query) {
+ if (query.getCondition() != null &&
definitionsService.resolveConditionType(query.getCondition())) {
+ if (StringUtils.isNotBlank(query.getText())) {
+ return persistenceService.queryFullText(query.getText(),
query.getCondition(), query.getSortby(), Event.class, query.getOffset(),
query.getLimit());
+ } else {
+ return persistenceService.query(query.getCondition(),
query.getSortby(), Event.class, query.getOffset(), query.getLimit());
+ }
+ } else {
+ if (StringUtils.isNotBlank(query.getText())) {
+ return persistenceService.queryFullText(query.getText(),
query.getSortby(), Event.class, query.getOffset(), query.getLimit());
+ } else {
+ return persistenceService.getAllItems(Event.class,
query.getOffset(), query.getLimit(), query.getSortby());
+ }
+ }
+ }
+
public boolean hasEventAlreadyBeenRaised(Event event, boolean session) {
List<Condition> conditions = new ArrayList<Condition>();