From 3cc656ebb78bbaf7864d27e0d94ec39a781c5a17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ga=C3=ABlle=20FOURNIER?= <gaelle.fournier.work@gmail.com>
Date: Fri, 20 Aug 2021 15:59:16 +0200
Subject: [PATCH] TULEAP 24209 : Fix search rules with adapted query

---
 .../common/dsl/VitamQueryHelper.java          | 20 ++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java
index 45b39e1bf..130dc201c 100644
--- a/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java
+++ b/api/api-referential/referential-commons/src/main/java/fr/gouv/vitamui/referential/common/dsl/VitamQueryHelper.java
@@ -119,14 +119,28 @@ public class VitamQueryHelper {
                     case IDENTIFIER:
                     case ID:
                     case PUID:
-                    case RULE_ID:
-                    case RULE_VALUE:
-                    case RULE_TYPE:
                         // string equals operation
                         final String stringValue = (String) entry.getValue();
                         queryOr.add(eq(searchKey, stringValue));
                         haveOrParameters = true;
                         break;
+                    case RULE_TYPE:
+                        // string equals operation filter as a and
+                        final String ruleType = (String) entry.getValue();
+                        query.add(eq(searchKey, ruleType));
+                        break;
+                    case RULE_ID:
+                        // string wildward operation
+                        final String ruleId = (String) entry.getValue();
+                        queryOr.add(wildcard(searchKey, "*"+ruleId+"*"));
+                        haveOrParameters = true;
+                        break;
+                    case RULE_VALUE:
+                        // string match phrase prefix operation
+                        final String ruleValue = (String) entry.getValue();
+                        queryOr.add(matchPhrasePrefix(searchKey, ruleValue));
+                        haveOrParameters = true;
+                        break;
                     case EV_TYPE_PROC:
                         // string equals operation
                         final String evTypeProc = (String) entry.getValue();
-- 
GitLab