diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 505fce7731300e480aee523800642784ebedef1e..3e65a3ed99869082b8c35601acc7d323b4ee2c30 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -539,6 +539,7 @@ public class CouchDBDao implements IDatabaseDao { loggedIn.setUser(u.getUsername()); loggedIn.setSessionId(s.get_id()); loggedIn.addVisitedSession(s); + loggedIn.updateTimestamp(); JSONObject json = JSONObject.fromObject(loggedIn); Document doc = new Document(json); @@ -561,4 +562,16 @@ public class CouchDBDao implements IDatabaseDao { return null; } } + + @Override + public void updateSessionOwnerActivity(Session session) { + try { + session.setLastOwnerActivity(System.currentTimeMillis()); + JSONObject json = JSONObject.fromObject(session); + this.getDatabase().saveDocument(new Document(json)); + } catch (IOException e) { + logger.error("Failed to update lastOwnerActivity for Session {}", session); + return; + } + } } diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 97d4988d0ce732206c36264f07ff5979dfda9a49..40dad113bd0d41b351bc8ac6398336f07340849c 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -43,4 +43,5 @@ public interface IDatabaseDao { public int getSkillQuestionCount(String sessionkey); public LoggedIn registerAsOnlineUser(User u, Session s); + public void updateSessionOwnerActivity(Session session); } \ No newline at end of file diff --git a/src/main/java/de/thm/arsnova/entities/LoggedIn.java b/src/main/java/de/thm/arsnova/entities/LoggedIn.java index fd081f3648236306de2426d2213ae33f2ddde93b..dcea1ce4339ccb4963ed40af005f3df67582ad1c 100644 --- a/src/main/java/de/thm/arsnova/entities/LoggedIn.java +++ b/src/main/java/de/thm/arsnova/entities/LoggedIn.java @@ -34,7 +34,7 @@ public class LoggedIn { public LoggedIn() { this.type = "logged_in"; - this.timestamp = System.currentTimeMillis(); + this.updateTimestamp(); } public void addVisitedSession(Session s) { @@ -51,6 +51,10 @@ public class LoggedIn { } return false; } + + public void updateTimestamp() { + this.timestamp = System.currentTimeMillis(); + } public String get_id() { return _id; diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Session.java index 2e43385d3ad589bad50fb331b6e7163c56f3c08d..06c46c23bc643d57901fbe977a27bcdd59ef24b4 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Session.java @@ -80,6 +80,10 @@ public class Session { public String get_id() { return _id; } - - public void set_rev(String rev) {} + public void set_rev(String rev) { + _rev = rev; + } + public String get_rev() { + return _rev; + } } diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index b7ef7910d420866c8a7a8c6aabd17fe63cb4291d..1d329af295744f44043192327ed32884a17f6660 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -173,6 +173,10 @@ public class SessionService implements ISessionService { Session session = this.joinSession(sessionkey); if (session == null) return null; + if (session.getCreator().equals(user.getUsername())) { + databaseDao.updateSessionOwnerActivity(session); + } + return databaseDao.registerAsOnlineUser(user, session); } } diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index 3594c5dd9efc4d2b8a9580bb393e974cc2a221bd..13fd216408fdf2dde05295ac414498bdde5ca485 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -157,4 +157,10 @@ public class StubDatabaseDao implements IDatabaseDao { return null; } + @Override + public void updateSessionOwnerActivity(Session session) { + // TODO Auto-generated method stub + + } + }