From cc107251c293bacd5bbc302c9bca2f5746cf1603 Mon Sep 17 00:00:00 2001
From: Leonardo <leomilho@gmail.com>
Date: Mon, 27 Jan 2025 13:01:28 +0100
Subject: [PATCH] fix(cypher): equals to an empty string use like op

---
 src/utils/cypher/converter/logic.ts | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/utils/cypher/converter/logic.ts b/src/utils/cypher/converter/logic.ts
index 0fec27a..2e81c85 100644
--- a/src/utils/cypher/converter/logic.ts
+++ b/src/utils/cypher/converter/logic.ts
@@ -1,5 +1,6 @@
 import type { AnyStatement } from 'ts-common/src/model/query/logic/general';
 import type { QueryCacheData } from './model';
+import { log } from 'ts-common/src/logger/logger';
 
 export function createWhereLogic(op: string, left: string, whereLogic: string, cacheData: QueryCacheData): [string, string] {
   const newWhereLogic = `${left.replace('.', '_')}_${op}`;
@@ -32,6 +33,7 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac
     case 'object':
       if (Array.isArray(logicQuery)) {
         let op = logicQuery[0].replace('_', '').toLowerCase();
+        const right = logicQuery?.[2];
         const [left, whereLogic] = extractLogicCypher(logicQuery[1], cacheData);
         let whereLogicMutable = whereLogic;
 
@@ -40,7 +42,8 @@ export function extractLogicCypher(logicQuery: AnyStatement, cacheData: QueryCac
             op = '<>';
             break;
           case '==':
-            op = '=';
+            if (right === '".*"') op = '=~'; // in case "equals to <empty string>", this is what happens
+            else op = '=';
             break;
           case 'like':
             op = '=~';
-- 
GitLab