From f57aac8e9bf91118fc4eceedcfb640e198591100 Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Wed, 24 Oct 2012 16:15:48 +0200 Subject: [PATCH] Update session activity for Teachers; force timestamp update for logged_in --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 13 +++++++++++++ src/main/java/de/thm/arsnova/dao/IDatabaseDao.java | 1 + src/main/java/de/thm/arsnova/entities/LoggedIn.java | 6 +++++- src/main/java/de/thm/arsnova/entities/Session.java | 8 ++++++-- .../de/thm/arsnova/services/SessionService.java | 4 ++++ .../java/de/thm/arsnova/dao/StubDatabaseDao.java | 6 ++++++ 6 files changed, 35 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 505fce77..3e65a3ed 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 97d4988d..40dad113 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 fd081f36..dcea1ce4 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 2e43385d..06c46c23 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 b7ef7910..1d329af2 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 3594c5dd..13fd2164 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 + + } + } -- GitLab