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 {