Canvas: Implement delete project

Change-Id: I0c2abfde3d813376b9f22ab8dc8b1752262679cb
diff --git a/apps/canvas/back/index.js b/apps/canvas/back/index.js
index ef3449f..32c28cd 100644
--- a/apps/canvas/back/index.js
+++ b/apps/canvas/back/index.js
@@ -123,6 +123,42 @@
         resp.end();
     }
 });
+const handleDelete = (req, resp) => __awaiter(void 0, void 0, void 0, function* () {
+    try {
+        const projectId = Number(req.params["projectId"]);
+        const p = yield db.project.findUnique({
+            where: {
+                id: projectId,
+            },
+            select: {
+                instanceId: true,
+            },
+        });
+        if (p === null) {
+            resp.status(404);
+            return;
+        }
+        const r = yield axios_1.default.request({
+            url: `http://appmanager.hgrz-appmanager.svc.cluster.local/api/instance/${p.instanceId}/remove`,
+            method: "post",
+        });
+        if (r.status === 200) {
+            yield db.project.delete({
+                where: {
+                    id: projectId,
+                },
+            });
+        }
+        resp.status(200);
+    }
+    catch (e) {
+        console.log(e);
+        resp.status(500);
+    }
+    finally {
+        resp.end();
+    }
+});
 const handleDeploy = (req, resp) => __awaiter(void 0, void 0, void 0, function* () {
     try {
         const projectId = Number(req.params["projectId"]);
@@ -245,6 +281,7 @@
         app.get("/api/project/:projectId/saved", handleSavedGet);
         app.post("/api/project/:projectId/deploy", handleDeploy);
         app.get("/api/project/:projectId/status", handleStatus);
+        app.delete("/api/project/:projectId", handleDelete);
         app.get("/api/project", handleProjectAll);
         app.post("/api/project", handleProjectCreate);
         app.use("/", express_1.default.static("../front/dist"));