Skip to content
Snippets Groups Projects
Commit 3b71c7b6 authored by Christoph Thelen's avatar Christoph Thelen
Browse files

Update feedback of all clients after feedback reset

parent 307b5506
Branches
Tags
No related merge requests found
...@@ -114,8 +114,10 @@ public class FeedbackStorage { ...@@ -114,8 +114,10 @@ public class FeedbackStorage {
public Map<String, List<User>> cleanFeedbackVotes(final int cleanupFeedbackDelay) { public Map<String, List<User>> cleanFeedbackVotes(final int cleanupFeedbackDelay) {
final Map<String, List<User>> removedFeedbackOfUsersInSession = new HashMap<String, List<User>>();; final Map<String, List<User>> removedFeedbackOfUsersInSession = new HashMap<String, List<User>>();;
for (final String keyword : data.keySet()) { for (final String keyword : data.keySet()) {
List<User> feedbackOfUsers = cleanFeedbackVotesInSession(keyword, cleanupFeedbackDelay); List<User> affectedUsers = cleanFeedbackVotesInSession(keyword, cleanupFeedbackDelay);
removedFeedbackOfUsersInSession.put(keyword, feedbackOfUsers); if (!affectedUsers.isEmpty()) {
removedFeedbackOfUsersInSession.put(keyword, affectedUsers);
}
} }
return removedFeedbackOfUsersInSession; return removedFeedbackOfUsersInSession;
} }
...@@ -125,15 +127,15 @@ public class FeedbackStorage { ...@@ -125,15 +127,15 @@ public class FeedbackStorage {
final long maxAllowedTimeInMillis = System.currentTimeMillis() - timelimitInMillis; final long maxAllowedTimeInMillis = System.currentTimeMillis() - timelimitInMillis;
final Map<String, FeedbackStorageObject> sessionFeedbacks = data.get(keyword); final Map<String, FeedbackStorageObject> sessionFeedbacks = data.get(keyword);
final List<User> feedbackOfUsers = new ArrayList<User>(); final List<User> affectedUsers = new ArrayList<User>();
for (final Map.Entry<String, FeedbackStorageObject> entry : sessionFeedbacks.entrySet()) { for (final Map.Entry<String, FeedbackStorageObject> entry : sessionFeedbacks.entrySet()) {
final boolean timeIsUp = entry.getValue().getTimestamp().getTime() < maxAllowedTimeInMillis; final boolean timeIsUp = entry.getValue().getTimestamp().getTime() < maxAllowedTimeInMillis;
if (timeIsUp) { if (timeIsUp) {
sessionFeedbacks.remove(entry.getKey()); sessionFeedbacks.remove(entry.getKey());
feedbackOfUsers.add(entry.getValue().user); affectedUsers.add(entry.getValue().user);
} }
} }
return feedbackOfUsers; return affectedUsers;
} }
} }
...@@ -92,11 +92,16 @@ public class FeedbackService implements IFeedbackService { ...@@ -92,11 +92,16 @@ public class FeedbackService implements IFeedbackService {
affectedSessionsOfUsers.put(user, affectedSessions); affectedSessionsOfUsers.put(user, affectedSessions);
} }
} }
// Send feedback reset event to all affected users
for (Map.Entry<User, Set<String>> entry : affectedSessionsOfUsers.entrySet()) { for (Map.Entry<User, Set<String>> entry : affectedSessionsOfUsers.entrySet()) {
final User user = entry.getKey(); final User user = entry.getKey();
final Set<String> arsSessions = entry.getValue(); final Set<String> arsSessions = entry.getValue();
server.reportDeletedFeedback(user.getUsername(), arsSessions); server.reportDeletedFeedback(user.getUsername(), arsSessions);
} }
// For each session that has deleted feedback, send the new feedback to all clients
for (String sessionKey : deletedFeedbackOfUsersInSession.keySet()) {
server.reportUpdatedFeedbackForSession(sessionKey);
}
} }
@Override @Override
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment