From c6567aae87aae53119237d15e1ec6b9efa50af25 Mon Sep 17 00:00:00 2001
From: Jan Sandr <Jan.Sandr2@ibm.com>
Date: Fri, 15 Dec 2023 23:54:33 +0100
Subject: [PATCH] Editor add/delete canvas

---
 .../controller/EditorController.java          | 41 ++++++++++++++++++-
 1 file changed, 39 insertions(+), 2 deletions(-)

diff --git a/src/main/java/cz/cvut/fit/tjv/vectorSandbox_api/controller/EditorController.java b/src/main/java/cz/cvut/fit/tjv/vectorSandbox_api/controller/EditorController.java
index d17be8c..7ee63ad 100644
--- a/src/main/java/cz/cvut/fit/tjv/vectorSandbox_api/controller/EditorController.java
+++ b/src/main/java/cz/cvut/fit/tjv/vectorSandbox_api/controller/EditorController.java
@@ -11,9 +11,11 @@ import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import org.springframework.http.HttpStatus;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
 import org.springframework.web.server.ResponseStatusException;
 
 import java.awt.*;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Optional;
 
@@ -78,15 +80,50 @@ public class EditorController {
         return canvases.isPresent() ? canvases.get().getEditedByMe() : null;
     }
 
-    @PutMapping("/{id}/editeByMe")
+    @PostMapping ("/{id}/editeByMe")
     public void addCanvas (@PathVariable String id, @RequestBody VectorCanvas c) {
-       var vectorCanvas = vectorCanvasService.readById(c.getId());
+        var vectorCanvas = vectorCanvasService.readById(c.getId());
 
         if (vectorCanvas.isPresent() && editorService.readById(id).isPresent())
         {
             var editor = editorService.readById(id).get();
             editor.getEditedByMe().add(vectorCanvas.get());
             editorService.update(id,editor);
+        }
+    }
+
+    @DeleteMapping ("/{id}/editeByMe/{canvasId}")
+    public void removeCanvas (@PathVariable String id, @PathVariable String canvasId) {
+       var vectorCanvas = vectorCanvasService.readById(canvasId);
+
+       var allEditor = editorService.readAll();
+
+        if (vectorCanvas.isPresent() && editorService.readById(id).isPresent())
+        {
+            var currentEditor = editorService.readById(id).get();
+            currentEditor.getEditedByMe().remove(vectorCanvas.get());
+            editorService.update(id,currentEditor);
+
+            //vectorCanvas = vectorCanvasService.readById(canvasId);
+
+            for ( var editor : allEditor )
+            {
+                if(editor.getEditedByMe().contains(vectorCanvas.get()))
+                    return;
+            }
+
+            RestTemplate restTemplate = new RestTemplate();
+            restTemplate.delete("http://localhost:7080/canvas/" + canvasId);
+
+           // for ( var shape : vectorCanvas.get().getShapes())
+             //   shapeService.deleteById(shape.getId());
+
+            //TODO Proč to tady nejde i když vyčistím canvas a nemá žádné editory?
+           // vectorCanvasService.deleteById(id);
+
+
+
+
         }
     }
 }
-- 
GitLab