[ 
https://issues.apache.org/jira/browse/UNOMI-534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17454650#comment-17454650
 ] 

Serge Huber commented on UNOMI-534:
-----------------------------------

Once this is fixed, it would be nice to document always using an event type 
condition for performance reasons.

> Different condition handling between search and rules
> -----------------------------------------------------
>
>                 Key: UNOMI-534
>                 URL: https://issues.apache.org/jira/browse/UNOMI-534
>             Project: Apache Unomi
>          Issue Type: Task
>    Affects Versions: 1.6.0
>            Reporter: Francois Gerthoffert
>            Priority: Major
>             Fix For: 1.6.0
>
>
> Hi,
> I used the search endpoint to create/verify the condition before creating the 
> rule, but while I was able to return events using the search endpoints for a 
> particular condition, I spent quite some time trying to understand why the 
> same condition added to a rule would not match.
> Steps to reproduce (also here: 
> [https://gist.github.com/Fgerthoffert/7069e82906b030a1e63a6d006c54ce7d):]
>  - Create an event and verify it is showing up with event-tail
>  
> {code:java}
> curl 'http://localhost:8181/eventcollector' \  -H 'Accept: application/json' 
> \  --data-raw '{    "events":[{      "eventType":"click",      
> "scope":"digitall",      "target":{        "scope":"digitall",        
> "itemId":"model-y",        "itemType":"car"      },      "source":{        
> "scope":"digitall",        "itemId":"US 66",        "itemType":"road"      }  
>   }],    "sessionId":"a37eca9f-b8a4-4e65-a8b7-79d6da48d566"}' {code}
>  
>  - Search for that event using eventPropertyCondition
>  
> {code:java}
> curl --request POST \  --url http://localhost:8181/cxs/events/search \  
> --user karaf:karaf \  --header 'Content-Type: application/json' \  --data '{  
> "limit": 10,    "condition": {      "type": "eventPropertyCondition",         
>   "parameterValues" : {               "propertyName" : "target.itemType",     
>           "comparisonOperator" : "equals",               "propertyValue" : 
> "car"            }        }}' {code}
> The event you just submitted should be part of the results.
>  
>  - Create a rule using that same eventPropertyCondition 
>  
> {code:java}
> curl --request POST \  --url http://localhost:8181/cxs/rules \  --user 
> karaf:karaf \  --header 'Content-Type: application/json' \  --data '{  
> "metadata": {    "id": "testGroovyActionRule",    "name": "Test Groovy Action 
> Rule",    "description": "A sample rule to test Groovy actions"  },  
> "condition": {    "type": "eventPropertyCondition",    "parameterValues" : {  
>      "propertyName" : "target.itemType",       "comparisonOperator" : 
> "equals",       "propertyValue" : "interest"    }  },  "actions": [    {      
> "type": "evaluateProfileAge",      "parameterValues": {}    }  ]}' {code}
>  - Open an ssh connection to Karaf and use rule-tail
>  
>  - Re-send the same event, you should NOT see any rule matching (this is the 
> "issue")
>  - Update the rule you just created
> {code:java}
> curl --request POST \
>   --url http://localhost:8181/cxs/rules \
>   --user karaf:karaf \
>   --header 'Content-Type: application/json' \
>   --data '{
>   "metadata": {
>     "id": "testGroovyActionRule",
>     "name": "Test Groovy Action Rule",
>     "description": "A sample rule to test Groovy actions"
>   },
>   "condition": {
>     "type": "eventTypeCondition",
>     "parameterValues" : {
>        "eventTypeId" : "click"
>     }
>   },
>   "actions": [
>     {
>       "type": "evaluateProfileAge",
>       "parameterValues": {}
>     }
>   ]
> }' {code}
>  - Re-send the same event, you SHOULD see any rule matching
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to