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