This is an automated email from the ASF dual-hosted git repository. shuber pushed a commit to branch unomi-1.5.x in repository https://gitbox.apache.org/repos/asf/unomi.git
commit 03da6d7473f7d5f706722732d773de8b53630012 Author: Shir Bromberg <[email protected]> AuthorDate: Tue Nov 10 11:55:47 2020 +0200 feat(geo location condition): add support for getting location path f… (#61) (#210) geo location condition: add support for getting location path from parameters and cast integers. (cherry picked from commit 1904dacc5933490dd523787c8f78c0e2c427f1e7) --- .../GeoLocationByPointSessionConditionESQueryBuilder.java | 9 +++++---- .../cxs/conditions/geoLocationByPointSessionCondition.json | 5 +++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java index 001bd3d..21d27b1 100644 --- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java +++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java @@ -29,14 +29,15 @@ public class GeoLocationByPointSessionConditionESQueryBuilder implements Conditi @Override public QueryBuilder buildQuery(Condition condition, Map<String, Object> context, ConditionESQueryBuilderDispatcher dispatcher) { String type = (String) condition.getParameter("type"); + String name = condition.getParameter("name") == null ? "location" : (String) condition.getParameter("name"); if("circle".equals(type)) { - Double circleLatitude = (Double) condition.getParameter("circleLatitude"); - Double circleLongitude = (Double) condition.getParameter("circleLongitude"); + Double circleLatitude = ((Number) condition.getParameter("circleLatitude")).doubleValue(); + Double circleLongitude = ((Number) condition.getParameter("circleLongitude")).doubleValue(); String distance = condition.getParameter("distance").toString(); if(circleLatitude != null && circleLongitude != null && distance != null) { - return QueryBuilders.geoDistanceQuery("location") + return QueryBuilders.geoDistanceQuery(name) .point(circleLatitude, circleLongitude) .distance(distance); } @@ -47,7 +48,7 @@ public class GeoLocationByPointSessionConditionESQueryBuilder implements Conditi Double rectLongitudeSW = (Double) condition.getParameter("rectLongitudeSW"); if(rectLatitudeNE != null && rectLongitudeNE != null && rectLatitudeSW != null && rectLongitudeSW != null) { - return QueryBuilders.geoBoundingBoxQuery("location") + return QueryBuilders.geoBoundingBoxQuery(name) .setCorners(rectLatitudeNE, rectLongitudeNE,rectLatitudeSW, rectLongitudeSW); } } diff --git a/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json b/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json index 809d690..f33be79 100644 --- a/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json +++ b/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json @@ -54,6 +54,11 @@ "id": "distance", "type": "string", "multivalued": false + }, + { + "id": "name", + "type": "string", + "multivalued": false } ] } \ No newline at end of file
