Canvas: Update edges on port removal

Change-Id: I5f550f0511257207db4a2f0469957cc4449514bd
diff --git a/apps/canvas/back/index.js b/apps/canvas/back/index.js
index 425285c..6117e46 100644
--- a/apps/canvas/back/index.js
+++ b/apps/canvas/back/index.js
@@ -90,7 +90,7 @@
             select: {
                 state: true,
                 draft: true,
-            }
+            },
         });
         if (r == null) {
             resp.status(404);
@@ -133,7 +133,7 @@
             },
             select: {
                 instanceId: true,
-            }
+            },
         });
         if (p === null) {
             resp.status(404);
@@ -154,7 +154,7 @@
                 method: "post",
                 data: {
                     config: req.body.config,
-                }
+                },
             });
             if (r.status === 200) {
                 yield db.project.update({
@@ -176,7 +176,7 @@
                 method: "put",
                 data: {
                     config: req.body.config,
-                }
+                },
             });
             if (r.status === 200) {
                 yield db.project.update({
diff --git a/apps/canvas/back/index.ts b/apps/canvas/back/index.ts
index 6193a90..0f7a573 100644
--- a/apps/canvas/back/index.ts
+++ b/apps/canvas/back/index.ts
@@ -1,196 +1,202 @@
 import { PrismaClient } from "@prisma/client";
-import express, { response } from "express";
+import express from "express";
 import { env } from "node:process";
 import axios from "axios";
 
 const db = new PrismaClient();
 
 const handleProjectCreate: express.Handler = async (req, resp) => {
-    try {
-        const { id } = await db.project.create({
-            data: {
-                userId: "gio", // req.get("x-forwarded-userid")!,
-                name: req.body.name,
-            },
-        });
-        resp.status(200);
-        resp.header("Content-Type", "application/json");
-        resp.write(JSON.stringify({
-            id,
-        }))
-    } catch (e) {
-        console.log(e);
-        resp.status(500);
-    } finally {
-        resp.end();
-    }
+  try {
+    const { id } = await db.project.create({
+      data: {
+        userId: "gio", // req.get("x-forwarded-userid")!,
+        name: req.body.name,
+      },
+    });
+    resp.status(200);
+    resp.header("Content-Type", "application/json");
+    resp.write(
+      JSON.stringify({
+        id,
+      }),
+    );
+  } catch (e) {
+    console.log(e);
+    resp.status(500);
+  } finally {
+    resp.end();
+  }
 };
 
 const handleProjectAll: express.Handler = async (req, resp) => {
-    try {
-        const r = await db.project.findMany({
-            where: {
-                userId: "gio", // req.get("x-forwarded-userid")!,
-            },
-        });
-        resp.status(200);
-        resp.header("Content-Type", "application/json");
-        resp.write(JSON.stringify(r.map((p) => ({
-            id: p.id.toString(),
-            name: p.name,
-        }))))
-    } catch (e) {
-        console.log(e);
-        resp.status(500);
-    } finally {
-        resp.end();
-    }
+  try {
+    const r = await db.project.findMany({
+      where: {
+        userId: "gio", // req.get("x-forwarded-userid")!,
+      },
+    });
+    resp.status(200);
+    resp.header("Content-Type", "application/json");
+    resp.write(
+      JSON.stringify(
+        r.map((p) => ({
+          id: p.id.toString(),
+          name: p.name,
+        })),
+      ),
+    );
+  } catch (e) {
+    console.log(e);
+    resp.status(500);
+  } finally {
+    resp.end();
+  }
 };
 
 const handleSave: express.Handler = async (req, resp) => {
-    try {
-        await db.project.update({
-            where: {
-                id: Number(req.params["projectId"]),
-            },
-            data: {
-                draft: Buffer.from(JSON.stringify(req.body)),
-            },
-        });
-        resp.status(200);
-    } catch (e) {
-        console.log(e);
-        resp.status(500)
-    } finally {
-        resp.end();
-    }
+  try {
+    await db.project.update({
+      where: {
+        id: Number(req.params["projectId"]),
+      },
+      data: {
+        draft: Buffer.from(JSON.stringify(req.body)),
+      },
+    });
+    resp.status(200);
+  } catch (e) {
+    console.log(e);
+    resp.status(500);
+  } finally {
+    resp.end();
+  }
 };
 
 const handleSavedGet: express.Handler = async (req, resp) => {
-    try {
-        const r = await db.project.findUnique({
-            where: {
-                id: Number(req.params["projectId"]),
-            },
-            select: {
-                state: true,
-                draft: true,
-            }
-        });
-        if (r == null) {
-            resp.status(404);
+  try {
+    const r = await db.project.findUnique({
+      where: {
+        id: Number(req.params["projectId"]),
+      },
+      select: {
+        state: true,
+        draft: true,
+      },
+    });
+    if (r == null) {
+      resp.status(404);
+    } else {
+      resp.status(200);
+      resp.header("content-type", "application/json");
+      if (r.draft == null) {
+        if (r.state == null) {
+          resp.send({
+            nodes: [],
+            edges: [],
+            viewport: { x: 0, y: 0, zoom: 1 },
+          });
         } else {
-            resp.status(200);
-            resp.header("content-type", "application/json");
-            if (r.draft == null) {
-                if (r.state == null) {
-                    resp.send({
-                        nodes: [],
-                        edges: [],
-                        viewport: { x: 0, y: 0, zoom: 1 },
-                    });
-                } else {
-                    resp.send(JSON.parse(Buffer.from(r.state).toString("utf8")));
-                }
-            } else {
-                resp.send(JSON.parse(Buffer.from(r.draft).toString("utf8")));
-            }
+          resp.send(JSON.parse(Buffer.from(r.state).toString("utf8")));
         }
-    } catch (e) {
-        console.log(e);
-        resp.status(500);
-    } finally {
-        resp.end();
+      } else {
+        resp.send(JSON.parse(Buffer.from(r.draft).toString("utf8")));
+      }
     }
+  } catch (e) {
+    console.log(e);
+    resp.status(500);
+  } finally {
+    resp.end();
+  }
 };
 
 const handleDeploy: express.Handler = async (req, resp) => {
-    try {
-        const projectId = Number(req.params["projectId"]);
-        const state = Buffer.from(JSON.stringify(req.body.state));
-        const p = await db.project.findUnique({
-            where: {
-                id: projectId,
-            },
-            select: {
-                instanceId: true,
-            }
-        });
-        if (p === null) {
-            resp.status(404);
-            return;
-        }
-        await db.project.update({
-            where: {
-                id: projectId,
-            },
-            data: {
-                draft: state,
-            },
-        });
-        let r: { status: number, data: { id: string, deployKey: string } };
-        if (p.instanceId == null) {
-            r = await axios.request({
-                url: "http://appmanager.hgrz-appmanager.svc.cluster.local/api/dodo-app",
-                method: "post",
-                data: {
-                    config: req.body.config,
-                }
-            });
-            if (r.status === 200) {
-                await db.project.update({
-                    where: {
-                        id: projectId,
-                    },
-                    data: {
-                        state,
-                        draft: null,
-                        instanceId: r.data.id,
-                        deployKey: r.data.deployKey,
-                    },
-                });
-            }
-        } else {
-            r = await axios.request({
-                url: `http://appmanager.hgrz-appmanager.svc.cluster.local/api/dodo-app/${p.instanceId}`,
-                method: "put",
-                data: {
-                    config: req.body.config,
-                }
-            });
-            if (r.status === 200) {
-                await db.project.update({
-                    where: {
-                        id: projectId,
-                    },
-                    data: {
-                        state,
-                        draft: null,
-                    },
-                });
-            }
-        }
-    } catch (e) {
-        console.log(e);
-        resp.status(500);
-    } finally {
-        resp.end();
+  try {
+    const projectId = Number(req.params["projectId"]);
+    const state = Buffer.from(JSON.stringify(req.body.state));
+    const p = await db.project.findUnique({
+      where: {
+        id: projectId,
+      },
+      select: {
+        instanceId: true,
+      },
+    });
+    if (p === null) {
+      resp.status(404);
+      return;
     }
+    await db.project.update({
+      where: {
+        id: projectId,
+      },
+      data: {
+        draft: state,
+      },
+    });
+    let r: { status: number; data: { id: string; deployKey: string } };
+    if (p.instanceId == null) {
+      r = await axios.request({
+        url: "http://appmanager.hgrz-appmanager.svc.cluster.local/api/dodo-app",
+        method: "post",
+        data: {
+          config: req.body.config,
+        },
+      });
+      if (r.status === 200) {
+        await db.project.update({
+          where: {
+            id: projectId,
+          },
+          data: {
+            state,
+            draft: null,
+            instanceId: r.data.id,
+            deployKey: r.data.deployKey,
+          },
+        });
+      }
+    } else {
+      r = await axios.request({
+        url: `http://appmanager.hgrz-appmanager.svc.cluster.local/api/dodo-app/${p.instanceId}`,
+        method: "put",
+        data: {
+          config: req.body.config,
+        },
+      });
+      if (r.status === 200) {
+        await db.project.update({
+          where: {
+            id: projectId,
+          },
+          data: {
+            state,
+            draft: null,
+          },
+        });
+      }
+    }
+  } catch (e) {
+    console.log(e);
+    resp.status(500);
+  } finally {
+    resp.end();
+  }
 };
 
 async function start() {
-    await db.$connect();
-    const app = express();
-    app.use(express.json());
-    app.post("/api/project/:projectId/saved", handleSave);
-    app.get("/api/project/:projectId/saved", handleSavedGet);
-    app.post("/api/project/:projectId/deploy", handleDeploy);
-    app.get("/api/project", handleProjectAll);
-    app.post("/api/project", handleProjectCreate);
-    app.use("/", express.static("../front/dist"));
-    app.listen(env.DODO_PORT_WEB, () => {
-        console.log("started");
-    });
+  await db.$connect();
+  const app = express();
+  app.use(express.json());
+  app.post("/api/project/:projectId/saved", handleSave);
+  app.get("/api/project/:projectId/saved", handleSavedGet);
+  app.post("/api/project/:projectId/deploy", handleDeploy);
+  app.get("/api/project", handleProjectAll);
+  app.post("/api/project", handleProjectCreate);
+  app.use("/", express.static("../front/dist"));
+  app.listen(env.DODO_PORT_WEB, () => {
+    console.log("started");
+  });
 }
 
-start();
\ No newline at end of file
+start();
diff --git a/apps/canvas/back/prisma/dodo.db b/apps/canvas/back/prisma/dodo.db
index d382d23..21911b6 100644
--- a/apps/canvas/back/prisma/dodo.db
+++ b/apps/canvas/back/prisma/dodo.db
Binary files differ