From 53bcb0dcfd8c5afe81336b5a2e5243aae8f02106 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Wed, 21 Dec 2016 15:56:22 +0100 Subject: [PATCH] Move deletion of session related data to DAO method --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 2 +- src/main/java/de/thm/arsnova/dao/IDatabaseDao.java | 5 +++++ src/main/java/de/thm/arsnova/services/SessionService.java | 1 - .../java/de/thm/arsnova/services/SessionServiceTest.java | 1 - 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index c18e0313..1996ea4e 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -1676,6 +1676,7 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware @Caching(evict = { @CacheEvict("sessions"), @CacheEvict(cacheNames="sessions", key="#p0.keyword") }) public void deleteSession(final Session session) { try { + deleteAllQuestionsWithAnswers(session); deleteDocument(session.get_id()); LOGGER.debug("Deleted session document {} and related data.", session.get_id()); } catch (final IOException e) { @@ -1693,7 +1694,6 @@ public class CouchDBDao implements IDatabaseDao, ApplicationEventPublisherAware Session s = new Session(); s.set_id(oldDoc.getId()); s.set_rev(oldDoc.getJSONObject("value").getString("_rev")); - deleteAllQuestionsWithAnswers(s); deleteSession(s); } diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index a7372b08..4b49f134 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -144,6 +144,11 @@ public interface IDatabaseDao { Session changeSessionCreator(Session session, String newCreator); + /** + * Deletes a session and related data. + * + * @param session the session for deletion + */ void deleteSession(Session session); boolean deleteInactiveGuestSessions(long lastActivityBefore); diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 8ac0aa34..a1555145 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -405,7 +405,6 @@ public class SessionService implements ISessionService, ApplicationEventPublishe prepSubjects.add(""); } - databaseDao.deleteAllQuestionsWithAnswers(session); databaseDao.deleteSession(session); this.publisher.publishEvent(new DeleteSessionEvent(this, session)); diff --git a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java index 8a3bb77f..87a3f5da 100644 --- a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java @@ -173,7 +173,6 @@ public class SessionServiceTest { sessionService.deleteSession(session.getKeyword()); - verify(mockDatabase).deleteAllQuestionsWithAnswers(session); verify(mockDatabase).deleteSession(session); } finally { ReflectionTestUtils.setField(getTargetObject(sessionService), "databaseDao", tempDatabase); -- GitLab