From 1546e0b684b79a9152b3138ed099733c29a9c691 Mon Sep 17 00:00:00 2001 From: Ayoub Zayati Date: Tue, 26 Mar 2024 16:51:37 +0100 Subject: [PATCH] feat: Implement removeDraftById for service and storage layers - EXO-69641 - Meeds-io/MIPs#119 --- .../java/org/exoplatform/wiki/jpa/JPADataStorage.java | 6 ++++++ .../java/org/exoplatform/wiki/service/DataStorage.java | 8 ++++++++ .../java/org/exoplatform/wiki/service/NoteService.java | 10 +++++++++- .../exoplatform/wiki/service/impl/NoteServiceImpl.java | 7 ++++++- 4 files changed, 29 insertions(+), 2 deletions(-) diff --git a/notes-service/src/main/java/org/exoplatform/wiki/jpa/JPADataStorage.java b/notes-service/src/main/java/org/exoplatform/wiki/jpa/JPADataStorage.java index 540c0c9757..e1e1d06aa1 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/jpa/JPADataStorage.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/jpa/JPADataStorage.java @@ -359,6 +359,12 @@ public void deleteDraftByName(String draftPageName, String username) throws Wiki } draftPageDAO.deleteDraftPagesByUserAndName(draftPageName, username); } + + @Override + public void deleteDraftById(String id) throws WikiException { + DraftPageEntity draftPageEntity = draftPageDAO.find(Long.parseLong(id)); + draftPageDAO.delete(draftPageEntity); + } @Override @ExoTransactional diff --git a/notes-service/src/main/java/org/exoplatform/wiki/service/DataStorage.java b/notes-service/src/main/java/org/exoplatform/wiki/service/DataStorage.java index 5433cba72f..a1704a2c4d 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/service/DataStorage.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/service/DataStorage.java @@ -86,6 +86,14 @@ public interface DataStorage { public void deleteDraftOfPage(Page page, String username, String lang) throws WikiException; public void deleteDraftByName(String newDraftPageName, String username) throws WikiException; + + /** + * Deletes a draft note by its technical id. + * + * @param id Id of the draft note. + * @throws WikiException if an error occured + */ + public void deleteDraftById(String id) throws WikiException; public void renamePage(String wikiType, String wikiOwner, String pageName, String newName, String newTitle) throws WikiException; diff --git a/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java b/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java index ab15ac88f9..b54678bfa6 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/service/NoteService.java @@ -266,7 +266,7 @@ List getBreadCrumb(String noteType, void removeDraftOfNote(WikiPageParams param, String lang) throws WikiException; void removeDraftOfNote(Page page, String username) throws WikiException; - + /** * Removes a draft page by its name. * @@ -274,6 +274,14 @@ List getBreadCrumb(String noteType, * @throws WikiException if an error occured */ void removeDraft(String draftName) throws WikiException; + + /** + * Removes a draft page by its technical id. + * + * @param draftId Technical Id of the draft page. + * @throws WikiException if an error occured + */ + void removeDraftById(String draftId) throws WikiException; /** diff --git a/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java b/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java index c16fc2764c..c842104ce4 100644 --- a/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java +++ b/notes-service/src/main/java/org/exoplatform/wiki/service/impl/NoteServiceImpl.java @@ -730,7 +730,12 @@ public void removeDraftOfNote(WikiPageParams param, String lang) throws WikiExce public void removeDraft(String draftName) throws WikiException { dataStorage.deleteDraftByName(draftName, Utils.getCurrentUser()); } - + + @Override + public void removeDraftById(String draftId) throws WikiException { + dataStorage.deleteDraftById(draftId); + } + @Override public List getVersionsHistoryOfNote(Page note, String userName) throws WikiException { List versionsHistory = dataStorage.getHistoryOfPage(note);