diff --git a/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQuery.java b/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQuery.java index e7b9d23c1c43..4d7bc5d9391a 100644 --- a/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQuery.java +++ b/dotCMS/src/main/java/com/dotcms/analytics/query/AnalyticsQuery.java @@ -6,7 +6,29 @@ import java.util.Set; /** - * Encapsulates a simplificated query for the analytics backend + * Encapsulates a simple query for the analytics backend + * Example: + *
+ * { + * "query": { + * "dimensions": [ + * "Events.experiment", + * "Events.variant", + * "Events.lookBackWindow" + * ], + * "measures": [ + * "Events.count" + * ], + * "filters": "Events.variant = ['B']", + * "limit": 100, + * "offset": 1, + * "timeDimensions": "Events.day day", + * "orders": "Events.day ASC" + * } + * } + * + * @see AnalyticsQueryParser + ** @author jsanca */ @JsonDeserialize(builder = AnalyticsQuery.Builder.class) diff --git a/dotCMS/src/main/java/com/dotcms/analytics/query/FilterParser.java b/dotCMS/src/main/java/com/dotcms/analytics/query/FilterParser.java index 039840064283..c176db1fabdf 100644 --- a/dotCMS/src/main/java/com/dotcms/analytics/query/FilterParser.java +++ b/dotCMS/src/main/java/com/dotcms/analytics/query/FilterParser.java @@ -10,6 +10,12 @@ /** * Parser for a filter expression + * Example: + *
+ * FilterParser.parseFilterExpression("Events.variant = ['B'] or Events.experiments = ['C']"); + *+ * should return 2 tokens and 1 logical operator + * Tokens are member, operator and values (Events.variant, =, B) and the operator is 'and' or 'or' * @author jsanca */ public class FilterParser { diff --git a/dotCMS/src/main/java/com/dotcms/analytics/query/OrderParser.java b/dotCMS/src/main/java/com/dotcms/analytics/query/OrderParser.java index 4d571d88878f..06dbb61e37ea 100644 --- a/dotCMS/src/main/java/com/dotcms/analytics/query/OrderParser.java +++ b/dotCMS/src/main/java/com/dotcms/analytics/query/OrderParser.java @@ -6,6 +6,13 @@ /** * Order parser + * Example: + *
+ * OrderParser.parseOrder("Events.day ASC"); + *+ * + * should return Events.day and ASC (term and order) + * if the order is not ASC or DESC or is missing will throw {@link IllegalArgumentException} * @author jsanca */ public class OrderParser { diff --git a/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java b/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java index d056fd082e5f..92db4faa9651 100644 --- a/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java +++ b/dotCMS/src/main/java/com/dotcms/analytics/query/TimeDimensionParser.java @@ -5,6 +5,13 @@ /** * Time Dimension Parser + * Example: + *
+ * TimeDimensionParser.parseTimeDimension("Events.day day"); + *+ * + * This should return Events.day and day (term and field) + * Note: this is not support intervals for dates, but will introduce on the future * @author jsanca */ public class TimeDimensionParser {