From b79930394dd76d055cf4545cb94be7c12ffa6c2f Mon Sep 17 00:00:00 2001 From: Ezequiel Bergamaschi Date: Thu, 30 Jan 2014 04:35:48 -0300 Subject: [PATCH] remove label api --- .../main/java/com/wisemapping/dao/LabelManager.java | 2 ++ .../java/com/wisemapping/dao/LabelManagerImpl.java | 5 +++++ .../java/com/wisemapping/rest/LabelController.java | 12 ++++++++++++ .../java/com/wisemapping/service/LabelService.java | 2 ++ .../com/wisemapping/service/LabelServiceImpl.java | 10 ++++++++++ 5 files changed, 31 insertions(+) diff --git a/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java b/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java index 06684c12..dae03436 100644 --- a/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java +++ b/wise-webapp/src/main/java/com/wisemapping/dao/LabelManager.java @@ -21,4 +21,6 @@ public interface LabelManager { @Nullable Label getLabelByTitle(@NotNull final String title, @NotNull final User user); + + void removeLabel(@NotNull final Label label); } diff --git a/wise-webapp/src/main/java/com/wisemapping/dao/LabelManagerImpl.java b/wise-webapp/src/main/java/com/wisemapping/dao/LabelManagerImpl.java index 8b5d561a..659be122 100644 --- a/wise-webapp/src/main/java/com/wisemapping/dao/LabelManagerImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/dao/LabelManagerImpl.java @@ -44,5 +44,10 @@ public class LabelManagerImpl extends HibernateDaoSupport return result; } + @Override + public void removeLabel(@NotNull Label label) { + getHibernateTemplate().delete(label); + } + } diff --git a/wise-webapp/src/main/java/com/wisemapping/rest/LabelController.java b/wise-webapp/src/main/java/com/wisemapping/rest/LabelController.java index 82dc8c5e..bbbb00c3 100644 --- a/wise-webapp/src/main/java/com/wisemapping/rest/LabelController.java +++ b/wise-webapp/src/main/java/com/wisemapping/rest/LabelController.java @@ -93,4 +93,16 @@ public class LabelController extends BaseController { mindmapService.updateMindmap(mindmap, false); } } + + @RequestMapping(method = RequestMethod.DELETE, value = "/labels/{id}") + @ResponseStatus(value = HttpStatus.NO_CONTENT) + public void deleteMapById(@PathVariable int id) throws WiseMappingException { + final User user = Utils.getUser(); + final Label label = labelService.getLabelById(id); + if (label == null) { + throw new LabelCouldNotFoundException("Label could not be found. Id: " + id); + } + assert user != null; + labelService.removeLabel(label, user); + } } diff --git a/wise-webapp/src/main/java/com/wisemapping/service/LabelService.java b/wise-webapp/src/main/java/com/wisemapping/service/LabelService.java index 95e86c12..0e44a7f1 100644 --- a/wise-webapp/src/main/java/com/wisemapping/service/LabelService.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/LabelService.java @@ -18,4 +18,6 @@ public interface LabelService { Label getLabelById(int id); public Label getLabelByTitle(@NotNull String title, @NotNull final User user); + + void removeLabel(@NotNull final Label label, @NotNull final User user) throws WiseMappingException; } diff --git a/wise-webapp/src/main/java/com/wisemapping/service/LabelServiceImpl.java b/wise-webapp/src/main/java/com/wisemapping/service/LabelServiceImpl.java index d166261c..cfb227d5 100644 --- a/wise-webapp/src/main/java/com/wisemapping/service/LabelServiceImpl.java +++ b/wise-webapp/src/main/java/com/wisemapping/service/LabelServiceImpl.java @@ -40,4 +40,14 @@ public class LabelServiceImpl implements LabelService { public Label getLabelByTitle(@NotNull String title, @NotNull final User user) { return labelManager.getLabelByTitle(title, user); } + + @Override + public void removeLabel(@NotNull Label label, @NotNull User user) throws WiseMappingException { + if (label.getCreator().equals(user)) { + labelManager.removeLabel(label); + } else { + throw new WiseMappingException("User: "+ user.getFullName() + "has no ownership on label " + label.getTitle()); + + } + } }