From d160b84127421bd55e7757d71eb8af7d1ecaed78 Mon Sep 17 00:00:00 2001
From: Robin Leber <rleber98@gmail.com>
Date: Tue, 25 Jun 2024 15:50:18 +0200
Subject: [PATCH] FIX: pipe binding, better connection getting

---
 src/functions/codeEditor.js  |  4 ++--
 src/functions/pipeBinding.js | 33 +++++++++++++++++++++++++++++----
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/src/functions/codeEditor.js b/src/functions/codeEditor.js
index ef17bbb..6b9df98 100644
--- a/src/functions/codeEditor.js
+++ b/src/functions/codeEditor.js
@@ -21,7 +21,7 @@ export const codeEditorElement = (instance) => {
       `codeEditor${window.selectedFilter}`
     );
     codeEditor.style.visibility = "visible";
-    handlePipeBinding(getPipesForFilter(), editor);
+    handlePipeBinding(getPipesForFilter(instance), editor);
   } else {
     var diagram = document.getElementById("Diagram");
 
@@ -56,7 +56,7 @@ export const codeEditorElement = (instance) => {
     closingX.addEventListener("click", () => handleCancel(editorContainer));
     editorContainer.appendChild(closingX);
 
-    handlePipeBinding(getPipesForFilter(), editor);
+    handlePipeBinding(getPipesForFilter(instance), editor);
     editorContainer.appendChild(editor.dom);
 
     var buttonContainer = document.createElement("div");
diff --git a/src/functions/pipeBinding.js b/src/functions/pipeBinding.js
index db0ee88..2abb677 100644
--- a/src/functions/pipeBinding.js
+++ b/src/functions/pipeBinding.js
@@ -1,13 +1,33 @@
 import { appState } from "./state";
 import { showCheck } from "./visualValidation";
 
-export const getPipesForFilter = () => {
+export const getPipesForFilter = (instance) => {
   const filter = window.selectedFilter;
-  const connections = appState.getConnection(filter);
+  const allConnections = instance.getAllConnections();
+
+  const incomingConnections = allConnections
+    .filter((connection) => connection.targetId === filter)
+    .map((connection) => ({
+      pipeId: connection.sourceId,
+      pipeType:
+        connection.source.dataset.type === "Default" ? "Queue" : "Topic",
+    }));
+  const outgoingConnections = allConnections
+    .filter((connection) => connection.sourceId === filter)
+    .map((connection) => ({
+      pipeId: connection.targetId,
+      pipeType:
+        connection.target.dataset.type === "Default" ? "Queue" : "Topic",
+    }));
+
+  const connectionsForFilter = incomingConnections.concat(outgoingConnections);
+
+  // buildPipesElements();
+
   const pipeMapping = [];
   let defaultCount = 1;
-  connections &&
-    connections.forEach((connection) => {
+  connectionsForFilter &&
+    connectionsForFilter.forEach((connection) => {
       const pipeName = appState.getPipe(connection.pipeId);
       if (!pipeName) {
         const pipeName = `Default${defaultCount}`;
@@ -99,3 +119,8 @@ const makeValidConstName = (str) => {
 
   return validStr;
 };
+
+const buildPipesElements = (incoming, outgoing) => {
+  console.log("### in: ", incoming);
+  console.log("### out: ", outgoing);
+};
-- 
GitLab