From c4ed2aa5e9d8aa0b0632bca0b2427327903b80fb Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Mon, 18 Sep 2017 14:45:01 +0200 Subject: [PATCH] Change occurences of 'Session' in class names to 'Room' --- ...SessionAspect.java => UserRoomAspect.java} | 22 +- .../de/thm/arsnova/cache/CacheBusterImpl.java | 8 +- .../arsnova/cache/ScheduledCacheBuster.java | 2 +- .../thm/arsnova/config/PersistanceConfig.java | 4 +- .../arsnova/controller/CommentController.java | 12 +- .../arsnova/controller/LoginController.java | 12 +- .../arsnova/controller/SessionController.java | 136 +++---- .../arsnova/controller/SocketController.java | 6 +- .../arsnova/controller/UserController.java | 4 +- .../java/de/thm/arsnova/entities/Content.java | 10 +- .../entities/{Session.java => Room.java} | 8 +- ...ionStatistics.java => RoomStatistics.java} | 4 +- .../arsnova/entities/UserAuthentication.java | 10 +- .../de/thm/arsnova/entities/UserProfile.java | 28 +- .../entities/migration/FromV2Migrator.java | 14 +- .../entities/migration/ToV2Migrator.java | 16 +- .../entities/migration/v2/LoggedIn.java | 16 +- .../migration/v2/{Session.java => Room.java} | 12 +- .../{SessionFeature.java => RoomFeature.java} | 6 +- .../v2/{SessionInfo.java => RoomInfo.java} | 34 +- .../{VisitedSession.java => VisitedRoom.java} | 9 +- .../CouchDbTypeFieldConverter.java | 4 +- .../transport/AnswerQueueElement.java | 12 +- .../transport/ImportExportSession.java | 32 +- .../arsnova/events/ArsnovaEventVisitor.java | 8 +- .../thm/arsnova/events/ChangeScoreEvent.java | 8 +- .../events/DeleteAllLectureAnswersEvent.java | 8 +- .../DeleteAllPreparationAnswersEvent.java | 8 +- .../DeleteAllQuestionsAnswersEvent.java | 8 +- .../events/DeleteAllQuestionsEvent.java | 8 +- .../thm/arsnova/events/DeleteAnswerEvent.java | 8 +- .../arsnova/events/DeleteCommentEvent.java | 8 +- ....java => DeleteFeedbackForRoomsEvent.java} | 12 +- .../arsnova/events/DeleteQuestionEvent.java | 8 +- ...SessionEvent.java => DeleteRoomEvent.java} | 8 +- .../arsnova/events/FeatureChangeEvent.java | 8 +- .../arsnova/events/FlipFlashcardsEvent.java | 8 +- .../thm/arsnova/events/LockFeedbackEvent.java | 8 +- .../thm/arsnova/events/LockQuestionEvent.java | 8 +- .../arsnova/events/LockQuestionsEvent.java | 8 +- .../de/thm/arsnova/events/LockVoteEvent.java | 8 +- .../de/thm/arsnova/events/LockVotesEvent.java | 8 +- .../de/thm/arsnova/events/NewAnswerEvent.java | 8 +- .../thm/arsnova/events/NewCommentEvent.java | 8 +- .../thm/arsnova/events/NewFeedbackEvent.java | 8 +- .../thm/arsnova/events/NewQuestionEvent.java | 8 +- ...NewSessionEvent.java => NewRoomEvent.java} | 8 +- .../arsnova/events/PiRoundCancelEvent.java | 6 +- .../events/PiRoundDelayedStartEvent.java | 8 +- .../thm/arsnova/events/PiRoundEndEvent.java | 8 +- .../thm/arsnova/events/PiRoundResetEvent.java | 8 +- .../{SessionEvent.java => RoomEvent.java} | 16 +- ...SessionEvent.java => StatusRoomEvent.java} | 8 +- .../arsnova/events/UnlockQuestionEvent.java | 8 +- .../arsnova/events/UnlockQuestionsEvent.java | 8 +- .../thm/arsnova/events/UnlockVoteEvent.java | 8 +- .../thm/arsnova/events/UnlockVotesEvent.java | 8 +- ...ionRepository.java => RoomRepository.java} | 34 +- .../SessionStatisticsRepository.java | 4 +- .../couchdb/CouchDbCommentRepository.java | 4 +- ...sitory.java => CouchDbRoomRepository.java} | 170 ++++----- .../CouchDbSessionStatisticsRepository.java | 12 +- .../CouchDbVisitedSessionRepository.java | 6 +- .../ApplicationPermissionEvaluator.java | 26 +- .../arsnova/services/CommentServiceImpl.java | 60 +-- .../arsnova/services/ContentServiceImpl.java | 240 ++++++------ .../arsnova/services/FeedbackServiceImpl.java | 72 ++-- .../services/FeedbackStorageService.java | 12 +- .../services/FeedbackStorageServiceImpl.java | 48 +-- .../thm/arsnova/services/MotdServiceImpl.java | 14 +- .../{SessionService.java => RoomService.java} | 52 +-- ...nServiceImpl.java => RoomServiceImpl.java} | 348 +++++++++--------- ...ssionService.java => UserRoomService.java} | 10 +- ...viceImpl.java => UserRoomServiceImpl.java} | 18 +- .../services/score/ScoreCalculator.java | 6 +- .../score/ScoreCalculatorFactoryImpl.java | 60 +-- .../score/VariantScoreCalculator.java | 18 +- .../websocket/ArsnovaSocketioServerImpl.java | 148 ++++---- .../message/{Session.java => Room.java} | 2 +- src/main/resources/META-INF/aop.xml | 2 +- src/site/markdown/development/caching.md | 2 +- .../arsnova/config/TestPersistanceConfig.java | 4 +- .../DefaultEntityServiceImplTest.java | 88 ++--- .../thm/arsnova/services/StubUserService.java | 2 +- 84 files changed, 1076 insertions(+), 1081 deletions(-) rename src/main/java/de/thm/arsnova/aop/{UserSessionAspect.java => UserRoomAspect.java} (67%) rename src/main/java/de/thm/arsnova/entities/{Session.java => Room.java} (91%) rename src/main/java/de/thm/arsnova/entities/{SessionStatistics.java => RoomStatistics.java} (95%) rename src/main/java/de/thm/arsnova/entities/migration/v2/{Session.java => Room.java} (97%) rename src/main/java/de/thm/arsnova/entities/migration/v2/{SessionFeature.java => RoomFeature.java} (98%) rename src/main/java/de/thm/arsnova/entities/migration/v2/{SessionInfo.java => RoomInfo.java} (89%) rename src/main/java/de/thm/arsnova/entities/migration/v2/{VisitedSession.java => VisitedRoom.java} (89%) rename src/main/java/de/thm/arsnova/events/{DeleteFeedbackForSessionsEvent.java => DeleteFeedbackForRoomsEvent.java} (79%) rename src/main/java/de/thm/arsnova/events/{DeleteSessionEvent.java => DeleteRoomEvent.java} (85%) rename src/main/java/de/thm/arsnova/events/{NewSessionEvent.java => NewRoomEvent.java} (84%) rename src/main/java/de/thm/arsnova/events/{SessionEvent.java => RoomEvent.java} (76%) rename src/main/java/de/thm/arsnova/events/{StatusSessionEvent.java => StatusRoomEvent.java} (84%) rename src/main/java/de/thm/arsnova/persistance/{SessionRepository.java => RoomRepository.java} (51%) rename src/main/java/de/thm/arsnova/persistance/couchdb/{CouchDbSessionRepository.java => CouchDbRoomRepository.java} (78%) rename src/main/java/de/thm/arsnova/services/{SessionService.java => RoomService.java} (55%) rename src/main/java/de/thm/arsnova/services/{SessionServiceImpl.java => RoomServiceImpl.java} (57%) rename src/main/java/de/thm/arsnova/services/{UserSessionService.java => UserRoomService.java} (87%) rename src/main/java/de/thm/arsnova/services/{UserSessionServiceImpl.java => UserRoomServiceImpl.java} (85%) rename src/main/java/de/thm/arsnova/websocket/message/{Session.java => Room.java} (97%) diff --git a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java b/src/main/java/de/thm/arsnova/aop/UserRoomAspect.java similarity index 67% rename from src/main/java/de/thm/arsnova/aop/UserSessionAspect.java rename to src/main/java/de/thm/arsnova/aop/UserRoomAspect.java index 2ef9a36af..0c108f438 100644 --- a/src/main/java/de/thm/arsnova/aop/UserSessionAspect.java +++ b/src/main/java/de/thm/arsnova/aop/UserRoomAspect.java @@ -17,8 +17,8 @@ */ package de.thm.arsnova.aop; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.services.UserSessionService; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.services.UserRoomService; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; @@ -26,23 +26,23 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Configurable; /** - * Assigns a session to the {@link de.thm.arsnova.services.UserSessionService} whenever a user joins a - * session. + * Assigns a room to the {@link UserRoomService} whenever a user joins a + * room. */ @Aspect @Configurable -public class UserSessionAspect { +public class UserRoomAspect { @Autowired - private UserSessionService userSessionService; + private UserRoomService userRoomService; - /** Sets current user and ARSnova session in session scoped UserSessionService + /** Sets current user and ARSnova room in session scoped UserRoomService */ @AfterReturning( - pointcut = "execution(public * de.thm.arsnova.services.SessionService.join(..)) && args(keyword)", - returning = "session" + pointcut = "execution(public * de.thm.arsnova.services.RoomService.join(..)) && args(keyword)", + returning = "room" ) - public void joinSessionAdvice(final JoinPoint jp, final String keyword, final Session session) { - userSessionService.setSession(session); + public void joinSessionAdvice(final JoinPoint jp, final String keyword, final Room room) { + userRoomService.setRoom(room); } } diff --git a/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java b/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java index 4e94d3efa..0d02684f6 100644 --- a/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java +++ b/src/main/java/de/thm/arsnova/cache/CacheBusterImpl.java @@ -77,10 +77,10 @@ public class CacheBusterImpl implements CacheBuster, ArsnovaEventVisitor { public void visit(NewFeedbackEvent event) { } @Override - public void visit(DeleteFeedbackForSessionsEvent event) { } + public void visit(DeleteFeedbackForRoomsEvent event) { } @Override - public void visit(StatusSessionEvent event) { } + public void visit(StatusRoomEvent event) { } @CacheEvict(value = "statistics", allEntries = true) @Override @@ -100,11 +100,11 @@ public class CacheBusterImpl implements CacheBuster, ArsnovaEventVisitor { @CacheEvict(value = "statistics", allEntries = true) @Override - public void visit(NewSessionEvent newSessionEvent) { } + public void visit(NewRoomEvent newSessionEvent) { } @CacheEvict(value = "statistics", allEntries = true) @Override - public void visit(DeleteSessionEvent deleteSessionEvent) { } + public void visit(DeleteRoomEvent deleteSessionEvent) { } @Override public void visit(LockVoteEvent lockVoteEvent) { } diff --git a/src/main/java/de/thm/arsnova/cache/ScheduledCacheBuster.java b/src/main/java/de/thm/arsnova/cache/ScheduledCacheBuster.java index 9d3ee0eac..c3ea951f4 100644 --- a/src/main/java/de/thm/arsnova/cache/ScheduledCacheBuster.java +++ b/src/main/java/de/thm/arsnova/cache/ScheduledCacheBuster.java @@ -34,7 +34,7 @@ import org.springframework.stereotype.Component; @Component public class ScheduledCacheBuster { - @CacheEvict(value = "sessions", allEntries = true) + @CacheEvict(value = "rooms", allEntries = true) @Scheduled(initialDelay = 1000 * 25, fixedRate = 1000 * 60 * 60 * 6) private void clearSessionCache() { } diff --git a/src/main/java/de/thm/arsnova/config/PersistanceConfig.java b/src/main/java/de/thm/arsnova/config/PersistanceConfig.java index 895577706..d278ee919 100644 --- a/src/main/java/de/thm/arsnova/config/PersistanceConfig.java +++ b/src/main/java/de/thm/arsnova/config/PersistanceConfig.java @@ -54,8 +54,8 @@ public class PersistanceConfig { } @Bean - public SessionRepository sessionRepository() throws Exception { - return new CouchDbSessionRepository(couchDbConnector(), false); + public RoomRepository sessionRepository() throws Exception { + return new CouchDbRoomRepository(couchDbConnector(), false); } @Bean diff --git a/src/main/java/de/thm/arsnova/controller/CommentController.java b/src/main/java/de/thm/arsnova/controller/CommentController.java index 33e0d2e94..f05f4e85f 100644 --- a/src/main/java/de/thm/arsnova/controller/CommentController.java +++ b/src/main/java/de/thm/arsnova/controller/CommentController.java @@ -56,7 +56,7 @@ public class CommentController extends PaginationController { @RequestMapping(value = "/count", method = RequestMethod.GET) @DeprecatedApi @Deprecated - public int getInterposedCount(@ApiParam(value = "Session-Key from current session", required = true) @RequestParam final String sessionkey) { + public int getInterposedCount(@ApiParam(value = "Room-Key from current session", required = true) @RequestParam final String sessionkey) { return commentService.count(sessionkey); } @@ -65,15 +65,15 @@ public class CommentController extends PaginationController { @RequestMapping(value = "/readcount", method = RequestMethod.GET) @DeprecatedApi @Deprecated - public CommentReadingCount getUnreadInterposedCount(@ApiParam(value = "Session-Key from current session", required = true) @RequestParam("sessionkey") final String sessionkey, String user) { + public CommentReadingCount getUnreadInterposedCount(@ApiParam(value = "Room-Key from current session", required = true) @RequestParam("sessionkey") final String sessionkey, String user) { return commentService.countRead(sessionkey, user); } - @ApiOperation(value = "Retrieves all Comments for a Session", + @ApiOperation(value = "Retrieves all Comments for a Room", nickname = "getInterposedQuestions") @RequestMapping(value = "/", method = RequestMethod.GET) @Pagination - public List<Comment> getInterposedQuestions(@ApiParam(value = "Session-Key from current session", required = true) @RequestParam final String sessionkey) { + public List<Comment> getInterposedQuestions(@ApiParam(value = "Room-Key from current session", required = true) @RequestParam final String sessionkey) { return commentService.getBySessionKey(sessionkey, offset, limit); } @@ -84,7 +84,7 @@ public class CommentController extends PaginationController { return commentService.getAndMarkRead(questionId); } - @ApiOperation(value = "Creates a new Comment for a Session and returns the Comment's data", + @ApiOperation(value = "Creates a new Comment for a Room and returns the Comment's data", nickname = "postInterposedQuestion") @ApiResponses(value = { @ApiResponse(code = 400, message = HTML_STATUS_400) @@ -92,7 +92,7 @@ public class CommentController extends PaginationController { @RequestMapping(value = "/", method = RequestMethod.POST) @ResponseStatus(HttpStatus.CREATED) public void postInterposedQuestion( - @ApiParam(value = "Session-Key from current session", required = true) @RequestParam final String sessionkey, + @ApiParam(value = "Room-Key from current session", required = true) @RequestParam final String sessionkey, @ApiParam(value = "the body from the new comment", required = true) @RequestBody final Comment comment ) { if (commentService.save(comment)) { diff --git a/src/main/java/de/thm/arsnova/controller/LoginController.java b/src/main/java/de/thm/arsnova/controller/LoginController.java index bd37b95d8..6f59e2861 100644 --- a/src/main/java/de/thm/arsnova/controller/LoginController.java +++ b/src/main/java/de/thm/arsnova/controller/LoginController.java @@ -19,10 +19,10 @@ package de.thm.arsnova.controller; import de.thm.arsnova.entities.ServiceDescription; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.exceptions.UnauthorizedException; +import de.thm.arsnova.services.UserRoomService; import de.thm.arsnova.services.UserService; -import de.thm.arsnova.services.UserSessionService; import org.pac4j.core.context.J2EContext; import org.pac4j.core.exception.HttpAction; import org.pac4j.oauth.client.FacebookClient; @@ -145,7 +145,7 @@ public class LoginController extends AbstractController { private UserService userService; @Autowired - private UserSessionService userSessionService; + private UserRoomService userRoomService; private static final Logger logger = LoggerFactory.getLogger(LoginController.class); @@ -161,7 +161,7 @@ public class LoginController extends AbstractController { @RequestParam("type") final String type, @RequestParam(value = "user", required = false) String username, @RequestParam(required = false) final String password, - @RequestParam(value = "role", required = false) final UserSessionService.Role role, + @RequestParam(value = "role", required = false) final UserRoomService.Role role, final HttpServletRequest request, final HttpServletResponse response ) throws IOException { @@ -172,7 +172,7 @@ public class LoginController extends AbstractController { return; } - userSessionService.setRole(role); + userRoomService.setRole(role); if (dbAuthEnabled && "arsnova".equals(type)) { Authentication authRequest = new UsernamePasswordAuthenticationToken(username, password); @@ -300,7 +300,7 @@ public class LoginController extends AbstractController { @RequestMapping(value = { "/auth/", "/whoami" }, method = RequestMethod.GET) @ResponseBody public UserAuthentication whoami() { - userSessionService.setUser(userService.getCurrentUser()); + userRoomService.setUser(userService.getCurrentUser()); return userService.getCurrentUser(); } diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index 98b1f6c1a..8f9944797 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -18,18 +18,18 @@ package de.thm.arsnova.controller; import de.thm.arsnova.connector.model.Course; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.SessionFeature; -import de.thm.arsnova.entities.migration.v2.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.entities.migration.v2.RoomFeature; +import de.thm.arsnova.entities.migration.v2.RoomInfo; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.ScoreStatistics; import de.thm.arsnova.exceptions.UnauthorizedException; -import de.thm.arsnova.services.SessionService; +import de.thm.arsnova.services.RoomService; import de.thm.arsnova.services.UserService; -import de.thm.arsnova.services.SessionServiceImpl.SessionInfoNameComparator; -import de.thm.arsnova.services.SessionServiceImpl.SessionInfoShortNameComparator; -import de.thm.arsnova.services.SessionServiceImpl.SessionNameComparator; -import de.thm.arsnova.services.SessionServiceImpl.SessionShortNameComparator; +import de.thm.arsnova.services.RoomServiceImpl.SessionInfoNameComparator; +import de.thm.arsnova.services.RoomServiceImpl.SessionInfoShortNameComparator; +import de.thm.arsnova.services.RoomServiceImpl.SessionNameComparator; +import de.thm.arsnova.services.RoomServiceImpl.SessionShortNameComparator; import de.thm.arsnova.web.DeprecatedApi; import de.thm.arsnova.web.Pagination; import io.swagger.annotations.Api; @@ -58,10 +58,10 @@ import java.util.List; */ @RestController @RequestMapping("/session") -@Api(value = "/session", description = "the Session Controller API") +@Api(value = "/session", description = "the Room Controller API") public class SessionController extends PaginationController { @Autowired - private SessionService sessionService; + private RoomService roomService; @Autowired private UserService userService; @@ -71,23 +71,23 @@ public class SessionController extends PaginationController { @DeprecatedApi @Deprecated @RequestMapping(value = "/{sessionkey}", method = RequestMethod.GET) - public Session joinSession( - @ApiParam(value = "Session-Key from current session", required = true) @PathVariable final String sessionkey, + public Room joinSession( + @ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String sessionkey, @ApiParam(value = "Adminflag", required = false) @RequestParam(value = "admin", defaultValue = "false") final boolean admin ) { if (admin) { - return sessionService.getForAdmin(sessionkey); + return roomService.getForAdmin(sessionkey); } else { - return sessionService.getByKey(sessionkey); + return roomService.getByKey(sessionkey); } } @ApiOperation(value = "deletes a session", nickname = "deleteSession") @RequestMapping(value = "/{sessionkey}", method = RequestMethod.DELETE) - public void deleteSession(@ApiParam(value = "Session-Key from current session", required = true) @PathVariable final String sessionkey) { - Session session = sessionService.getByKey(sessionkey); - sessionService.deleteCascading(session); + public void deleteSession(@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String sessionkey) { + Room room = roomService.getByKey(sessionkey); + roomService.deleteCascading(room); } @ApiOperation(value = "count active users", @@ -95,11 +95,11 @@ public class SessionController extends PaginationController { @DeprecatedApi @Deprecated @RequestMapping(value = "/{sessionkey}/activeusercount", method = RequestMethod.GET) - public int countActiveUsers(@ApiParam(value = "Session-Key from current session", required = true) @PathVariable final String sessionkey) { - return sessionService.activeUsers(sessionkey); + public int countActiveUsers(@ApiParam(value = "Room-Key from current session", required = true) @PathVariable final String sessionkey) { + return roomService.activeUsers(sessionkey); } - @ApiOperation(value = "Creates a new Session and returns the Session's data", + @ApiOperation(value = "Creates a new Room and returns the Room's data", nickname = "postNewSession") @ApiResponses(value = { @ApiResponse(code = 201, message = HTML_STATUS_201), @@ -107,21 +107,21 @@ public class SessionController extends PaginationController { }) @RequestMapping(value = "/", method = RequestMethod.POST) @ResponseStatus(HttpStatus.CREATED) - public Session postNewSession(@ApiParam(value = "current session", required = true) @RequestBody final Session session, final HttpServletResponse response) { - if (session != null && session.isCourseSession()) { + public Room postNewSession(@ApiParam(value = "current session", required = true) @RequestBody final Room room, final HttpServletResponse response) { + if (room != null && room.isCourseSession()) { final List<Course> courses = new ArrayList<>(); final Course course = new Course(); - course.setId(session.getCourseId()); + course.setId(room.getCourseId()); courses.add(course); - final int sessionCount = sessionService.countSessionsByCourses(courses); + final int sessionCount = roomService.countSessionsByCourses(courses); if (sessionCount > 0) { final String appendix = " (" + (sessionCount + 1) + ")"; - session.setName(session.getName() + appendix); - session.setShortName(session.getShortName() + appendix); + room.setName(room.getName() + appendix); + room.setShortName(room.getShortName() + appendix); } } - final Session newSession = sessionService.save(session); + final Room newSession = roomService.save(room); if (newSession == null) { response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value()); @@ -134,20 +134,20 @@ public class SessionController extends PaginationController { @ApiOperation(value = "updates a session", nickname = "postNewSession") @RequestMapping(value = "/{sessionkey}", method = RequestMethod.PUT) - public Session updateSession( + public Room updateSession( @ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey, - @ApiParam(value = "current session", required = true) @RequestBody final Session session + @ApiParam(value = "current session", required = true) @RequestBody final Room room ) { - return sessionService.update(sessionkey, session); + return roomService.update(sessionkey, room); } @ApiOperation(value = "change the session creator (owner)", nickname = "changeSessionCreator") @RequestMapping(value = "/{sessionkey}/changecreator", method = RequestMethod.PUT) - public Session changeSessionCreator( + public Room changeSessionCreator( @ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey, @ApiParam(value = "new session creator", required = true) @RequestBody final String newCreator ) { - return sessionService.updateCreator(sessionkey, newCreator); + return roomService.updateCreator(sessionkey, newCreator); } @ApiOperation(value = "Retrieves a list of Sessions", @@ -158,7 +158,7 @@ public class SessionController extends PaginationController { }) @RequestMapping(value = "/", method = RequestMethod.GET) @Pagination - public List<Session> getSessions( + public List<Room> getSessions( @ApiParam(value = "ownedOnly", required = true) @RequestParam(value = "ownedonly", defaultValue = "false") final boolean ownedOnly, @ApiParam(value = "visitedOnly", required = true) @RequestParam(value = "visitedonly", defaultValue = "false") final boolean visitedOnly, @ApiParam(value = "sortby", required = true) @RequestParam(value = "sortby", defaultValue = "name") final String sortby, @@ -166,14 +166,14 @@ public class SessionController extends PaginationController { "username", defaultValue = "") final String username, final HttpServletResponse response ) { - List<Session> sessions; + List<Room> sessions; if (!"".equals(username)) { try { if (ownedOnly && !visitedOnly) { - sessions = sessionService.getUserSessions(username); + sessions = roomService.getUserSessions(username); } else if (visitedOnly && !ownedOnly) { - sessions = sessionService.getUserVisitedSessions(username); + sessions = roomService.getUserVisitedSessions(username); } else { response.setStatus(HttpStatus.NOT_IMPLEMENTED.value()); return null; @@ -185,9 +185,9 @@ public class SessionController extends PaginationController { /* TODO implement all parameter combinations, implement use of user parameter */ try { if (ownedOnly && !visitedOnly) { - sessions = sessionService.getMySessions(offset, limit); + sessions = roomService.getMySessions(offset, limit); } else if (visitedOnly && !ownedOnly) { - sessions = sessionService.getMyVisitedSessions(offset, limit); + sessions = roomService.getMyVisitedSessions(offset, limit); } else { response.setStatus(HttpStatus.NOT_IMPLEMENTED.value()); return null; @@ -214,23 +214,23 @@ public class SessionController extends PaginationController { /** * Returns a list of my own sessions with only the necessary information like name, keyword, or counters. */ - @ApiOperation(value = "Retrieves a Session", + @ApiOperation(value = "Retrieves a Room", nickname = "getMySessions") @ApiResponses(value = { @ApiResponse(code = 204, message = HTML_STATUS_204) }) @RequestMapping(value = "/", method = RequestMethod.GET, params = "statusonly=true") @Pagination - public List<SessionInfo> getMySessions( + public List<RoomInfo> getMySessions( @ApiParam(value = "visitedOnly", required = true) @RequestParam(value = "visitedonly", defaultValue = "false") final boolean visitedOnly, @ApiParam(value = "sort by", required = false) @RequestParam(value = "sortby", defaultValue = "name") final String sortby, final HttpServletResponse response ) { - List<SessionInfo> sessions; + List<RoomInfo> sessions; if (!visitedOnly) { - sessions = sessionService.getMySessionsInfo(offset, limit); + sessions = roomService.getMySessionsInfo(offset, limit); } else { - sessions = sessionService.getMyVisitedSessionsInfo(offset, limit); + sessions = roomService.getMyVisitedSessionsInfo(offset, limit); } if (sessions == null || sessions.isEmpty()) { @@ -252,10 +252,10 @@ public class SessionController extends PaginationController { @ApiResponse(code = 204, message = HTML_STATUS_204) }) @RequestMapping(value = "/publicpool", method = RequestMethod.GET, params = "statusonly=true") - public List<SessionInfo> getMyPublicPoolSessions( + public List<RoomInfo> getMyPublicPoolSessions( final HttpServletResponse response ) { - List<SessionInfo> sessions = sessionService.getMyPublicPoolSessionsInfo(); + List<RoomInfo> sessions = roomService.getMyPublicPoolSessionsInfo(); if (sessions == null || sessions.isEmpty()) { response.setStatus(HttpServletResponse.SC_NO_CONTENT); @@ -271,10 +271,10 @@ public class SessionController extends PaginationController { @ApiResponse(code = 204, message = HTML_STATUS_204) }) @RequestMapping(value = "/publicpool", method = RequestMethod.GET) - public List<SessionInfo> getPublicPoolSessions( + public List<RoomInfo> getPublicPoolSessions( final HttpServletResponse response ) { - List<SessionInfo> sessions = sessionService.getPublicPoolSessionsInfo(); + List<RoomInfo> sessions = roomService.getPublicPoolSessionsInfo(); if (sessions == null || sessions.isEmpty()) { response.setStatus(HttpServletResponse.SC_NO_CONTENT); @@ -287,11 +287,11 @@ public class SessionController extends PaginationController { @ApiOperation(value = "imports a session", nickname = "importSession") @RequestMapping(value = "/import", method = RequestMethod.POST) - public SessionInfo importSession( + public RoomInfo importSession( @ApiParam(value = "current session", required = true) @RequestBody final ImportExportSession session, final HttpServletResponse response ) { - return sessionService.importSession(session); + return roomService.importSession(session); } @ApiOperation(value = "export sessions", nickname = "exportSession") @@ -305,42 +305,42 @@ public class SessionController extends PaginationController { List<ImportExportSession> sessions = new ArrayList<>(); ImportExportSession temp; for (String key : sessionkey) { - sessionService.setActive(key, false); - temp = sessionService.exportSession(key, withAnswerStatistics, withFeedbackQuestions); + roomService.setActive(key, false); + temp = roomService.exportSession(key, withAnswerStatistics, withFeedbackQuestions); if (temp != null) { sessions.add(temp); } - sessionService.setActive(key, true); + roomService.setActive(key, true); } return sessions; } @ApiOperation(value = "copy a session to the public pool if enabled") @RequestMapping(value = "/{sessionkey}/copytopublicpool", method = RequestMethod.POST) - public SessionInfo copyToPublicPool( + public RoomInfo copyToPublicPool( @ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey, @ApiParam(value = "public pool attributes for session", required = true) @RequestBody final de.thm.arsnova.entities.transport.ImportExportSession.PublicPool publicPool ) { - sessionService.setActive(sessionkey, false); - SessionInfo sessionInfo = sessionService.copySessionToPublicPool(sessionkey, publicPool); - sessionService.setActive(sessionkey, true); + roomService.setActive(sessionkey, false); + RoomInfo sessionInfo = roomService.copySessionToPublicPool(sessionkey, publicPool); + roomService.setActive(sessionkey, true); return sessionInfo; } - @ApiOperation(value = "Locks or unlocks a Session", + @ApiOperation(value = "Locks or unlocks a Room", nickname = "lockSession") @ApiResponses(value = { @ApiResponse(code = 404, message = HTML_STATUS_404) }) @RequestMapping(value = "/{sessionkey}/lock", method = RequestMethod.POST) - public Session lockSession( + public Room lockSession( @ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey, @ApiParam(value = "lock", required = true) @RequestParam(required = false) final Boolean lock, final HttpServletResponse response ) { if (lock != null) { - return sessionService.setActive(sessionkey, lock); + return roomService.setActive(sessionkey, lock); } response.setStatus(HttpStatus.NOT_FOUND.value()); return null; @@ -355,7 +355,7 @@ public class SessionController extends PaginationController { @ApiParam(value = "question variant", required = false) @RequestParam(value = "questionVariant", required = false) final String questionVariant, final HttpServletResponse response ) { - return sessionService.getLearningProgress(sessionkey, type, questionVariant); + return roomService.getLearningProgress(sessionkey, type, questionVariant); } @ApiOperation(value = "retrieves a value for the learning progress for the current user", @@ -367,28 +367,28 @@ public class SessionController extends PaginationController { @RequestParam(value = "questionVariant", required = false) final String questionVariant, final HttpServletResponse response ) { - return sessionService.getMyLearningProgress(sessionkey, type, questionVariant); + return roomService.getMyLearningProgress(sessionkey, type, questionVariant); } @ApiOperation(value = "retrieves all session features", nickname = "getSessionFeatures") @RequestMapping(value = "/{sessionkey}/features", method = RequestMethod.GET) - public SessionFeature getSessionFeatures( + public RoomFeature getSessionFeatures( @ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey, final HttpServletResponse response ) { - return sessionService.getFeatures(sessionkey); + return roomService.getFeatures(sessionkey); } @RequestMapping(value = "/{sessionkey}/features", method = RequestMethod.PUT) @ApiOperation(value = "change all session features", nickname = "changeSessionFeatures") - public SessionFeature changeSessionFeatures( + public RoomFeature changeSessionFeatures( @ApiParam(value = "session-key from current session", required = true) @PathVariable final String sessionkey, - @ApiParam(value = "session feature", required = true) @RequestBody final SessionFeature features, + @ApiParam(value = "session feature", required = true) @RequestBody final RoomFeature features, final HttpServletResponse response ) { - return sessionService.updateFeatures(sessionkey, features); + return roomService.updateFeatures(sessionkey, features); } @RequestMapping(value = "/{sessionkey}/lockfeedbackinput", method = RequestMethod.POST) @@ -399,7 +399,7 @@ public class SessionController extends PaginationController { @ApiParam(value = "lock", required = true) @RequestParam(required = true) final Boolean lock, final HttpServletResponse response ) { - return sessionService.lockFeedbackInput(sessionkey, lock); + return roomService.lockFeedbackInput(sessionkey, lock); } @RequestMapping(value = "/{sessionkey}/flipflashcards", method = RequestMethod.POST) @@ -410,7 +410,7 @@ public class SessionController extends PaginationController { @ApiParam(value = "flip", required = true) @RequestParam(required = true) final Boolean flip, final HttpServletResponse response ) { - return sessionService.flipFlashcards(sessionkey, flip); + return roomService.flipFlashcards(sessionkey, flip); } /* internal redirections */ diff --git a/src/main/java/de/thm/arsnova/controller/SocketController.java b/src/main/java/de/thm/arsnova/controller/SocketController.java index ac4ae2ecf..82e0f6657 100644 --- a/src/main/java/de/thm/arsnova/controller/SocketController.java +++ b/src/main/java/de/thm/arsnova/controller/SocketController.java @@ -19,7 +19,7 @@ package de.thm.arsnova.controller; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.services.UserService; -import de.thm.arsnova.services.UserSessionService; +import de.thm.arsnova.services.UserRoomService; import de.thm.arsnova.websocket.ArsnovaSocketioServer; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -52,7 +52,7 @@ public class SocketController extends AbstractController { private UserService userService; @Autowired - private UserSessionService userSessionService; + private UserRoomService userRoomService; @Autowired private ArsnovaSocketioServer server; @@ -81,7 +81,7 @@ public class SocketController extends AbstractController { return; } userService.putUser2SocketId(UUID.fromString(socketid), u); - userSessionService.setSocketId(UUID.fromString(socketid)); + userRoomService.setSocketId(UUID.fromString(socketid)); response.setStatus(HttpStatus.NO_CONTENT.value()); } diff --git a/src/main/java/de/thm/arsnova/controller/UserController.java b/src/main/java/de/thm/arsnova/controller/UserController.java index bef91bfcd..3d9fd16cc 100644 --- a/src/main/java/de/thm/arsnova/controller/UserController.java +++ b/src/main/java/de/thm/arsnova/controller/UserController.java @@ -19,7 +19,7 @@ package de.thm.arsnova.controller; import de.thm.arsnova.entities.migration.v2.DbUser; import de.thm.arsnova.services.UserService; -import de.thm.arsnova.services.UserSessionService; +import de.thm.arsnova.services.UserRoomService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.dao.DaoAuthenticationProvider; import org.springframework.stereotype.Controller; @@ -44,7 +44,7 @@ public class UserController extends AbstractController { private UserService userService; @Autowired - private UserSessionService userSessionService; + private UserRoomService userRoomService; @RequestMapping(value = "/register", method = RequestMethod.POST) public void register(@RequestParam final String username, diff --git a/src/main/java/de/thm/arsnova/entities/Content.java b/src/main/java/de/thm/arsnova/entities/Content.java index ccd5d839c..9996784d4 100644 --- a/src/main/java/de/thm/arsnova/entities/Content.java +++ b/src/main/java/de/thm/arsnova/entities/Content.java @@ -6,7 +6,7 @@ import de.thm.arsnova.entities.serialization.View; public class Content implements Entity { private String id; private String rev; - private String sessionId; + private String roomId; private String subject; private String body; private String format; @@ -37,13 +37,13 @@ public class Content implements Entity { } @JsonView({View.Persistence.class, View.Public.class}) - public String getSessionId() { - return sessionId; + public String getRoomId() { + return roomId; } @JsonView({View.Persistence.class, View.Public.class}) - public void setSessionId(final String sessionId) { - this.sessionId = sessionId; + public void setRoomId(final String roomId) { + this.roomId = roomId; } @JsonView({View.Persistence.class, View.Public.class}) diff --git a/src/main/java/de/thm/arsnova/entities/Session.java b/src/main/java/de/thm/arsnova/entities/Room.java similarity index 91% rename from src/main/java/de/thm/arsnova/entities/Session.java rename to src/main/java/de/thm/arsnova/entities/Room.java index 409295505..b782afb6b 100644 --- a/src/main/java/de/thm/arsnova/entities/Session.java +++ b/src/main/java/de/thm/arsnova/entities/Room.java @@ -3,7 +3,7 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.serialization.View; -public class Session implements Entity { +public class Room implements Entity { private String id; private String rev; private String shortId; @@ -11,7 +11,7 @@ public class Session implements Entity { private String name; private String abbreviation; private boolean closed; - private SessionStatistics statistics; + private RoomStatistics statistics; @Override @JsonView({View.Persistence.class, View.Public.class}) @@ -88,11 +88,11 @@ public class Session implements Entity { } @JsonView(View.Public.class) - public SessionStatistics getStatistics() { + public RoomStatistics getStatistics() { return statistics; } - public void setStatistics(final SessionStatistics statistics) { + public void setStatistics(final RoomStatistics statistics) { this.statistics = statistics; } } diff --git a/src/main/java/de/thm/arsnova/entities/SessionStatistics.java b/src/main/java/de/thm/arsnova/entities/RoomStatistics.java similarity index 95% rename from src/main/java/de/thm/arsnova/entities/SessionStatistics.java rename to src/main/java/de/thm/arsnova/entities/RoomStatistics.java index 890be0bea..fdba8fb2b 100644 --- a/src/main/java/de/thm/arsnova/entities/SessionStatistics.java +++ b/src/main/java/de/thm/arsnova/entities/RoomStatistics.java @@ -3,14 +3,14 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.serialization.View; -public class SessionStatistics { +public class RoomStatistics { private int contentCount = 0; private int answerCount = 0; private int unreadAnswerCount = 0; private int commentCount = 0; private int unreadCommentCount = 0; - public SessionStatistics() { + public RoomStatistics() { } diff --git a/src/main/java/de/thm/arsnova/entities/UserAuthentication.java b/src/main/java/de/thm/arsnova/entities/UserAuthentication.java index 2c711df26..f9ad955b2 100644 --- a/src/main/java/de/thm/arsnova/entities/UserAuthentication.java +++ b/src/main/java/de/thm/arsnova/entities/UserAuthentication.java @@ -19,7 +19,7 @@ package de.thm.arsnova.entities; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.serialization.View; -import de.thm.arsnova.services.UserSessionService; +import de.thm.arsnova.services.UserRoomService; import org.jasig.cas.client.authentication.AttributePrincipal; import org.pac4j.oauth.profile.facebook.FacebookProfile; import org.pac4j.oauth.profile.google2.Google2Profile; @@ -45,7 +45,7 @@ public class UserAuthentication implements Serializable { private static final long serialVersionUID = 1L; private String username; private String type; - private UserSessionService.Role role; + private UserRoomService.Role role; private boolean isAdmin; public UserAuthentication(Google2Profile profile) { @@ -96,15 +96,15 @@ public class UserAuthentication implements Serializable { this.type = type; } - public UserSessionService.Role getRole() { + public UserRoomService.Role getRole() { return role; } - public void setRole(UserSessionService.Role role) { + public void setRole(UserRoomService.Role role) { this.role = role; } - public boolean hasRole(UserSessionService.Role role) { + public boolean hasRole(UserRoomService.Role role) { return this.role == role; } diff --git a/src/main/java/de/thm/arsnova/entities/UserProfile.java b/src/main/java/de/thm/arsnova/entities/UserProfile.java index 8a9ae4289..dd932fc38 100644 --- a/src/main/java/de/thm/arsnova/entities/UserProfile.java +++ b/src/main/java/de/thm/arsnova/entities/UserProfile.java @@ -56,25 +56,25 @@ public class UserProfile implements Entity { } } - public class SessionHistoryEntry { - private String sessionId; + public class RoomHistoryEntry { + private String roomId; private long lastVisit; - public SessionHistoryEntry() { + public RoomHistoryEntry() { } - public SessionHistoryEntry(String sessionId, long lastVisit) { - this.sessionId = sessionId; + public RoomHistoryEntry(String roomId, long lastVisit) { + this.roomId = roomId; this.lastVisit = lastVisit; } - public String getSessionId() { - return sessionId; + public String getRoomId() { + return roomId; } - public void setSessionId(String sessionId) { - this.sessionId = sessionId; + public void setRoomId(String roomId) { + this.roomId = roomId; } public long getLastVisit() { @@ -93,7 +93,7 @@ public class UserProfile implements Entity { private long creation; private long lastLogin; private Account account; - private List<SessionHistoryEntry> sessionHistory = new ArrayList<>(); + private List<RoomHistoryEntry> roomHistory = new ArrayList<>(); private Set<String> acknowledgedMotds = new HashSet<>(); @Override @@ -171,13 +171,13 @@ public class UserProfile implements Entity { } @JsonView({View.Persistence.class, View.Public.class}) - public List<SessionHistoryEntry> getSessionHistory() { - return sessionHistory; + public List<RoomHistoryEntry> getRoomHistory() { + return roomHistory; } @JsonView(View.Persistence.class) - public void setSessionHistory(List<SessionHistoryEntry> sessionHistory) { - this.sessionHistory = sessionHistory; + public void setRoomHistory(List<RoomHistoryEntry> roomHistory) { + this.roomHistory = roomHistory; } @JsonView({View.Persistence.class, View.Public.class}) diff --git a/src/main/java/de/thm/arsnova/entities/migration/FromV2Migrator.java b/src/main/java/de/thm/arsnova/entities/migration/FromV2Migrator.java index deb6e3981..caa7e6565 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/FromV2Migrator.java +++ b/src/main/java/de/thm/arsnova/entities/migration/FromV2Migrator.java @@ -29,7 +29,7 @@ import de.thm.arsnova.entities.migration.v2.Content; import de.thm.arsnova.entities.migration.v2.DbUser; import de.thm.arsnova.entities.migration.v2.LoggedIn; import de.thm.arsnova.entities.migration.v2.MotdList; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.ArrayList; import java.util.Arrays; @@ -70,10 +70,10 @@ public class FromV2Migrator { if (loggedIn != null) { profile.setLoginId(loggedIn.getUser()); profile.setLastLogin(loggedIn.getTimestamp()); - List<UserProfile.SessionHistoryEntry> sessionHistory = loggedIn.getVisitedSessions().stream() - .map(entry -> profile.new SessionHistoryEntry(entry.getId(), 0)) + List<UserProfile.RoomHistoryEntry> sessionHistory = loggedIn.getVisitedSessions().stream() + .map(entry -> profile.new RoomHistoryEntry(entry.getId(), 0)) .collect(Collectors.toList()); - profile.setSessionHistory(sessionHistory); + profile.setRoomHistory(sessionHistory); } if (motdList != null && motdList.getMotdkeys() != null) { profile.setAcknowledgedMotds(Arrays.stream(motdList.getMotdkeys().split(",")).collect(Collectors.toSet())); @@ -82,11 +82,11 @@ public class FromV2Migrator { return profile; } - public de.thm.arsnova.entities.Session migrate(final Session from, final DbUser owner) { + public de.thm.arsnova.entities.Room migrate(final Room from, final DbUser owner) { if (!owner.getUsername().equals(from.getCreator())) { throw new IllegalArgumentException("Username of owner object does not match session creator."); } - final de.thm.arsnova.entities.Session to = new de.thm.arsnova.entities.Session(); + final de.thm.arsnova.entities.Room to = new de.thm.arsnova.entities.Room(); copyCommonProperties(from, to); to.setShortId(from.getKeyword()); to.setOwnerId(owner.getId()); @@ -119,7 +119,7 @@ public class FromV2Migrator { throw new IllegalArgumentException("Unsupported content format."); } copyCommonProperties(from, to); - to.setSessionId(from.getSessionId()); + to.setRoomId(from.getSessionId()); to.setSubject(from.getSubject()); to.setBody(from.getText()); to.setFormat(from.getQuestionType()); diff --git a/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java b/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java index 1b3c4097b..0175a5d71 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java +++ b/src/main/java/de/thm/arsnova/entities/migration/ToV2Migrator.java @@ -17,10 +17,8 @@ */ package de.thm.arsnova.entities.migration; -import de.thm.arsnova.entities.ChoiceAnswer; import de.thm.arsnova.entities.ChoiceQuestionContent; import de.thm.arsnova.entities.Entity; -import de.thm.arsnova.entities.TextAnswer; import de.thm.arsnova.entities.UserProfile; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.AnswerOption; @@ -28,8 +26,8 @@ import de.thm.arsnova.entities.migration.v2.Comment; import de.thm.arsnova.entities.migration.v2.Content; import de.thm.arsnova.entities.migration.v2.LoggedIn; import de.thm.arsnova.entities.migration.v2.MotdList; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.VisitedSession; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.entities.migration.v2.VisitedRoom; import java.util.ArrayList; import java.util.List; @@ -51,8 +49,8 @@ public class ToV2Migrator { copyCommonProperties(from, to); to.setUser(from.getLoginId()); to.setTimestamp(from.getLastLogin()); - to.setVisitedSessions(from.getSessionHistory().stream() - .map(entry -> new VisitedSession()) + to.setVisitedSessions(from.getRoomHistory().stream() + .map(entry -> new VisitedRoom()) .collect(Collectors.toList())); return to; @@ -67,8 +65,8 @@ public class ToV2Migrator { return to; } - public Session migrate(final de.thm.arsnova.entities.Session from, final UserProfile owner) { - final Session to = new Session(); + public Room migrate(final de.thm.arsnova.entities.Room from, final UserProfile owner) { + final Room to = new Room(); copyCommonProperties(from, to); to.setKeyword(from.getShortId()); to.setCreator(owner.getLoginId()); @@ -82,7 +80,7 @@ public class ToV2Migrator { public Content migrate(final de.thm.arsnova.entities.Content from) { final Content to = new Content(); copyCommonProperties(from, to); - to.setSessionId(from.getSessionId()); + to.setSessionId(from.getRoomId()); to.setSubject(from.getSubject()); to.setText(from.getBody()); to.setQuestionType(from.getFormat()); diff --git a/src/main/java/de/thm/arsnova/entities/migration/v2/LoggedIn.java b/src/main/java/de/thm/arsnova/entities/migration/v2/LoggedIn.java index 711d9c236..2a346db7c 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/v2/LoggedIn.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/LoggedIn.java @@ -19,8 +19,6 @@ package de.thm.arsnova.entities.migration.v2; import com.fasterxml.jackson.annotation.JsonView; import de.thm.arsnova.entities.Entity; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.VisitedSession; import de.thm.arsnova.entities.serialization.View; import java.util.ArrayList; @@ -35,20 +33,20 @@ public class LoggedIn implements Entity { private String user; private String sessionId; private long timestamp; - private List<VisitedSession> visitedSessions = new ArrayList<>(); + private List<VisitedRoom> visitedSessions = new ArrayList<>(); public LoggedIn() { this.updateTimestamp(); } - public void addVisitedSession(Session s) { + public void addVisitedSession(Room s) { if (!isAlreadyVisited(s)) { - this.visitedSessions.add(new VisitedSession(s)); + this.visitedSessions.add(new VisitedRoom(s)); } } - private boolean isAlreadyVisited(Session s) { - for (VisitedSession vs : this.visitedSessions) { + private boolean isAlreadyVisited(Room s) { + for (VisitedRoom vs : this.visitedSessions) { if (vs.getId().equals(s.getId())) { return true; } @@ -111,12 +109,12 @@ public class LoggedIn implements Entity { } @JsonView(View.Persistence.class) - public List<VisitedSession> getVisitedSessions() { + public List<VisitedRoom> getVisitedSessions() { return visitedSessions; } @JsonView(View.Persistence.class) - public void setVisitedSessions(List<VisitedSession> visitedSessions) { + public void setVisitedSessions(List<VisitedRoom> visitedSessions) { this.visitedSessions = visitedSessions; } diff --git a/src/main/java/de/thm/arsnova/entities/migration/v2/Session.java b/src/main/java/de/thm/arsnova/entities/migration/v2/Room.java similarity index 97% rename from src/main/java/de/thm/arsnova/entities/migration/v2/Session.java rename to src/main/java/de/thm/arsnova/entities/migration/v2/Room.java index fe0ef8858..205c409cd 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/v2/Session.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/Room.java @@ -30,7 +30,7 @@ import io.swagger.annotations.ApiModelProperty; * Represents an ARSnova session. */ @ApiModel(value = "session", description = "the session entity") -public class Session implements Entity { +public class Room implements Entity { private String id; private String rev; private String name; @@ -43,7 +43,7 @@ public class Session implements Entity { private String courseId; private long creationTime; private ScoreOptions learningProgressOptions = new ScoreOptions(); - private SessionFeature features = new SessionFeature(); + private RoomFeature features = new RoomFeature(); private String ppAuthorName; private String ppAuthorMail; @@ -199,12 +199,12 @@ public class Session implements Entity { @ApiModelProperty(required = true, value = "the enabled features (e.g. feedback, interposed, learning Progress, lecture)") @JsonView({View.Persistence.class, View.Public.class}) - public SessionFeature getFeatures() { + public RoomFeature getFeatures() { return features; } @JsonView({View.Persistence.class, View.Public.class}) - public void setFeatures(SessionFeature features) { + public void setFeatures(RoomFeature features) { this.features = features; } @@ -342,7 +342,7 @@ public class Session implements Entity { @Override public String toString() { - return "Session [keyword=" + keyword + ", type=" + getType() + ", creator=" + creator + "]"; + return "Room [keyword=" + keyword + ", type=" + getType() + ", creator=" + creator + "]"; } @Override @@ -359,7 +359,7 @@ public class Session implements Entity { if (obj == null || !obj.getClass().equals(this.getClass())) { return false; } - Session other = (Session) obj; + Room other = (Room) obj; return this.keyword.equals(other.keyword); } diff --git a/src/main/java/de/thm/arsnova/entities/migration/v2/SessionFeature.java b/src/main/java/de/thm/arsnova/entities/migration/v2/RoomFeature.java similarity index 98% rename from src/main/java/de/thm/arsnova/entities/migration/v2/SessionFeature.java rename to src/main/java/de/thm/arsnova/entities/migration/v2/RoomFeature.java index 554965000..1bab21bef 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/v2/SessionFeature.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/RoomFeature.java @@ -28,7 +28,7 @@ import java.io.Serializable; * Contains fields that describe which specific feature is activated for a session. */ @ApiModel(value = "session feature", description = "the session feature entity") -public class SessionFeature implements Serializable { +public class RoomFeature implements Serializable { private boolean custom = true; private boolean clicker = false; @@ -49,7 +49,7 @@ public class SessionFeature implements Serializable { private boolean flashcardFeature = true; private boolean slides = false; - public SessionFeature(SessionFeature features) { + public RoomFeature(RoomFeature features) { this(); if (features != null) { this.custom = features.custom; @@ -72,7 +72,7 @@ public class SessionFeature implements Serializable { } } - public SessionFeature() { } + public RoomFeature() { } @JsonView({View.Persistence.class, View.Public.class}) public boolean isLecture() { diff --git a/src/main/java/de/thm/arsnova/entities/migration/v2/SessionInfo.java b/src/main/java/de/thm/arsnova/entities/migration/v2/RoomInfo.java similarity index 89% rename from src/main/java/de/thm/arsnova/entities/migration/v2/SessionInfo.java rename to src/main/java/de/thm/arsnova/entities/migration/v2/RoomInfo.java index d280d0455..741001f86 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/v2/SessionInfo.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/RoomInfo.java @@ -30,7 +30,7 @@ import java.util.List; * as 'my visited sessions'. */ @ApiModel(value = "session/import", description = "the session info entity") -public class SessionInfo { +public class RoomInfo { private String name; private String shortName; @@ -48,24 +48,24 @@ public class SessionInfo { private int numUnreadComments; private int numUnanswered; - public SessionInfo(Session session) { - this.name = session.getName(); - this.shortName = session.getShortName(); - this.keyword = session.getKeyword(); - this.active = session.isActive(); - this.courseType = session.getCourseType(); - this.creationTime = session.getCreationTime(); - this.sessionType = session.getSessionType(); - this.ppLevel = session.getPpLevel(); - this.ppSubject = session.getPpSubject(); + public RoomInfo(Room room) { + this.name = room.getName(); + this.shortName = room.getShortName(); + this.keyword = room.getKeyword(); + this.active = room.isActive(); + this.courseType = room.getCourseType(); + this.creationTime = room.getCreationTime(); + this.sessionType = room.getSessionType(); + this.ppLevel = room.getPpLevel(); + this.ppSubject = room.getPpSubject(); } - public SessionInfo() { } + public RoomInfo() { } - public static List<SessionInfo> fromSessionList(List<Session> sessions) { - List<SessionInfo> infos = new ArrayList<>(); - for (Session s : sessions) { - infos.add(new SessionInfo(s)); + public static List<RoomInfo> fromSessionList(List<Room> sessions) { + List<RoomInfo> infos = new ArrayList<>(); + for (Room s : sessions) { + infos.add(new RoomInfo(s)); } return infos; } @@ -235,7 +235,7 @@ public class SessionInfo { if (getClass() != obj.getClass()) { return false; } - SessionInfo other = (SessionInfo) obj; + RoomInfo other = (RoomInfo) obj; if (keyword == null) { if (other.keyword != null) { return false; diff --git a/src/main/java/de/thm/arsnova/entities/migration/v2/VisitedSession.java b/src/main/java/de/thm/arsnova/entities/migration/v2/VisitedRoom.java similarity index 89% rename from src/main/java/de/thm/arsnova/entities/migration/v2/VisitedSession.java rename to src/main/java/de/thm/arsnova/entities/migration/v2/VisitedRoom.java index aa88ca64f..e4ef7c3cb 100644 --- a/src/main/java/de/thm/arsnova/entities/migration/v2/VisitedSession.java +++ b/src/main/java/de/thm/arsnova/entities/migration/v2/VisitedRoom.java @@ -18,21 +18,20 @@ package de.thm.arsnova.entities.migration.v2; import com.fasterxml.jackson.annotation.JsonView; -import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.entities.serialization.View; /** * A session a user has visited previously. */ -public class VisitedSession { +public class VisitedRoom { private String id; private String name; private String keyword; - public VisitedSession() { + public VisitedRoom() { } - public VisitedSession(Session s) { + public VisitedRoom(Room s) { this.id = s.getId(); this.name = s.getName(); this.keyword = s.getKeyword(); @@ -70,7 +69,7 @@ public class VisitedSession { @Override public String toString() { - return "VisitedSession [id=" + id + ", name=" + name + ", keyword=" + return "VisitedRoom [id=" + id + ", name=" + name + ", keyword=" + keyword + "]"; } } diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java index 306e35656..e0d489539 100644 --- a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java +++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbTypeFieldConverter.java @@ -28,7 +28,7 @@ import de.thm.arsnova.entities.LogEntry; import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.migration.v2.Content; import de.thm.arsnova.entities.migration.v2.MotdList; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.HashMap; import java.util.Map; @@ -41,7 +41,7 @@ public class CouchDbTypeFieldConverter implements Converter<Class<? extends Enti typeMapping.put(DbUser.class, "userdetails"); typeMapping.put(Motd.class, "motd"); typeMapping.put(MotdList.class, "motdlist"); - typeMapping.put(Session.class, "session"); + typeMapping.put(Room.class, "session"); typeMapping.put(Comment.class, "interposed_question"); typeMapping.put(Content.class, "skill_question"); typeMapping.put(Answer.class, "skill_question_answer"); diff --git a/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java b/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java index 0fd326d63..17243c918 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java +++ b/src/main/java/de/thm/arsnova/entities/transport/AnswerQueueElement.java @@ -20,7 +20,7 @@ package de.thm.arsnova.entities.transport; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * An answer that is about to get saved in the database. Answers are not saved immediately, they are instead stored @@ -28,7 +28,7 @@ import de.thm.arsnova.entities.migration.v2.Session; */ public class AnswerQueueElement { - private final Session session; + private final Room room; private final Content content; @@ -36,15 +36,15 @@ public class AnswerQueueElement { private final UserAuthentication user; - public AnswerQueueElement(Session session, Content content, Answer answer, UserAuthentication user) { - this.session = session; + public AnswerQueueElement(Room room, Content content, Answer answer, UserAuthentication user) { + this.room = room; this.content = content; this.answer = answer; this.user = user; } - public Session getSession() { - return session; + public Room getRoom() { + return room; } public Content getQuestion() { diff --git a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java index 7ca248c6c..6bc382efc 100644 --- a/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java +++ b/src/main/java/de/thm/arsnova/entities/transport/ImportExportSession.java @@ -22,9 +22,9 @@ import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Comment; import de.thm.arsnova.entities.migration.v2.Content; import de.thm.arsnova.entities.Motd; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.SessionFeature; -import de.thm.arsnova.entities.migration.v2.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.entities.migration.v2.RoomFeature; +import de.thm.arsnova.entities.migration.v2.RoomInfo; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.serialization.View; import io.swagger.annotations.ApiModel; @@ -48,9 +48,9 @@ public class ImportExportSession { private List<Motd> motds; - private SessionFeature sessionFeature = new SessionFeature(); + private RoomFeature sessionFeature = new RoomFeature(); - private SessionInfo sessionInfo; + private RoomInfo sessionInfo; public ImportExportSession() { questions = new ArrayList<>(); @@ -99,24 +99,24 @@ public class ImportExportSession { } @JsonView(View.Public.class) - public SessionFeature getSessionFeature() { + public RoomFeature getSessionFeature() { return sessionFeature; } - public void setSessionFeature(SessionFeature sF) { + public void setSessionFeature(RoomFeature sF) { sessionFeature = sF; } @JsonView(View.Public.class) - public SessionInfo getSessionInfo() { + public RoomInfo getSessionInfo() { return sessionInfo; } - public void setSessionInfo(SessionInfo si) { + public void setSessionInfo(RoomInfo si) { sessionInfo = si; } - public void setSessionFromSessionObject(Session s) { + public void setSessionFromSessionObject(Room s) { ImportExportSesssion iesession = new ImportExportSesssion(); iesession.setName(s.getName()); iesession.setShortName(s.getShortName()); @@ -134,8 +134,8 @@ public class ImportExportSession { questions.add(ieq); } - public Session generateSessionEntity(UserAuthentication user) { - final Session s = new Session(); + public Room generateSessionEntity(UserAuthentication user) { + final Room s = new Room(); // import fields s.setActive(session.isActive()); // overwrite name and shortname @@ -249,7 +249,7 @@ public class ImportExportSession { private PublicPool publicPool; - private SessionFeature sessionFeature; + private RoomFeature sessionFeature; @ApiModelProperty(required = true, value = "used to display short name") @JsonView(View.Public.class) @@ -302,11 +302,11 @@ public class ImportExportSession { } @JsonView(View.Public.class) - public SessionFeature getSessionFeature() { + public RoomFeature getSessionFeature() { return this.sessionFeature; } - public void setSessionFeature(SessionFeature sF) { + public void setSessionFeature(RoomFeature sF) { this.sessionFeature = sF; } } @@ -335,7 +335,7 @@ public class ImportExportSession { private String shortName; - public void setPpFromSession(Session s) { + public void setPpFromSession(Room s) { ppAuthorName = s.getPpAuthorName(); ppAuthorMail = s.getPpAuthorMail(); ppUniversity = s.getPpUniversity(); diff --git a/src/main/java/de/thm/arsnova/events/ArsnovaEventVisitor.java b/src/main/java/de/thm/arsnova/events/ArsnovaEventVisitor.java index 6f79e6413..1092994d9 100644 --- a/src/main/java/de/thm/arsnova/events/ArsnovaEventVisitor.java +++ b/src/main/java/de/thm/arsnova/events/ArsnovaEventVisitor.java @@ -52,9 +52,9 @@ public interface ArsnovaEventVisitor { void visit(NewFeedbackEvent newFeedbackEvent); - void visit(DeleteFeedbackForSessionsEvent deleteFeedbackEvent); + void visit(DeleteFeedbackForRoomsEvent deleteFeedbackEvent); - void visit(StatusSessionEvent statusSessionEvent); + void visit(StatusRoomEvent statusSessionEvent); void visit(ChangeScoreEvent changeLearningProgress); @@ -66,9 +66,9 @@ public interface ArsnovaEventVisitor { void visit(PiRoundResetEvent piRoundResetEvent); - void visit(NewSessionEvent newSessionEvent); + void visit(NewRoomEvent newSessionEvent); - void visit(DeleteSessionEvent deleteSessionEvent); + void visit(DeleteRoomEvent deleteSessionEvent); void visit(LockVoteEvent lockVoteEvent); diff --git a/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java b/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java index 4a626fe55..df76ca4b7 100644 --- a/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java +++ b/src/main/java/de/thm/arsnova/events/ChangeScoreEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a score related value changes. */ -public class ChangeScoreEvent extends SessionEvent { +public class ChangeScoreEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public ChangeScoreEvent(Object source, Session session) { - super(source, session); + public ChangeScoreEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java index b7f4683fd..4865e7b7d 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllLectureAnswersEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever all answers of all lecture questions of a session are deleted. */ -public class DeleteAllLectureAnswersEvent extends SessionEvent { +public class DeleteAllLectureAnswersEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public DeleteAllLectureAnswersEvent(Object source, Session session) { - super(source, session); + public DeleteAllLectureAnswersEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java index a72e223a1..951e0cf1c 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllPreparationAnswersEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever all answers of all preparation questions of a session are deleted. */ -public class DeleteAllPreparationAnswersEvent extends SessionEvent { +public class DeleteAllPreparationAnswersEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public DeleteAllPreparationAnswersEvent(Object source, Session session) { - super(source, session); + public DeleteAllPreparationAnswersEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java index fd4cf53c3..78161f0a0 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsAnswersEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever all answers of all questions of a session are deleted. */ -public class DeleteAllQuestionsAnswersEvent extends SessionEvent { +public class DeleteAllQuestionsAnswersEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public DeleteAllQuestionsAnswersEvent(Object source, Session session) { - super(source, session); + public DeleteAllQuestionsAnswersEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java index 085896e14..82dc2a939 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAllQuestionsEvent.java @@ -17,18 +17,18 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever all questions of a session are deleted. Note that this implies that all answers are deleted as well, * even though the specific answer events are not fired. */ -public class DeleteAllQuestionsEvent extends SessionEvent { +public class DeleteAllQuestionsEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public DeleteAllQuestionsEvent(Object source, Session session) { - super(source, session); + public DeleteAllQuestionsEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java b/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java index db355a93d..99172851e 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteAnswerEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a single answer is deleted. */ -public class DeleteAnswerEvent extends SessionEvent { +public class DeleteAnswerEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public DeleteAnswerEvent(Object source, Session session, Content content) { - super(source, session); + public DeleteAnswerEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java b/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java index 44a5cb644..f0a2c378f 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteCommentEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Comment; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever an comment is deleted. */ -public class DeleteCommentEvent extends SessionEvent { +public class DeleteCommentEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Comment comment; - public DeleteCommentEvent(Object source, Session session, Comment comment) { - super(source, session); + public DeleteCommentEvent(Object source, Room room, Comment comment) { + super(source, room); this.comment = comment; } diff --git a/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java b/src/main/java/de/thm/arsnova/events/DeleteFeedbackForRoomsEvent.java similarity index 79% rename from src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java rename to src/main/java/de/thm/arsnova/events/DeleteFeedbackForRoomsEvent.java index beb002ef6..5446bb178 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteFeedbackForSessionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteFeedbackForRoomsEvent.java @@ -18,28 +18,28 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.Set; /** * Fires whenever the feedback of a specific user has been reset. */ -public class DeleteFeedbackForSessionsEvent extends ArsnovaEvent { +public class DeleteFeedbackForRoomsEvent extends ArsnovaEvent { private static final long serialVersionUID = 1L; - private final Set<Session> sessions; + private final Set<Room> sessions; private final UserAuthentication user; - public DeleteFeedbackForSessionsEvent(Object source, Set<Session> sessions, UserAuthentication user) { + public DeleteFeedbackForRoomsEvent(Object source, Set<Room> rooms, UserAuthentication user) { super(source); - this.sessions = sessions; + this.sessions = rooms; this.user = user; } - public Set<Session> getSessions() { + public Set<Room> getSessions() { return sessions; } diff --git a/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java index 2dffe285f..1e8175d22 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteQuestionEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a content is deleted. */ -public class DeleteQuestionEvent extends SessionEvent { +public class DeleteQuestionEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public DeleteQuestionEvent(Object source, Session session, Content content) { - super(source, session); + public DeleteQuestionEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java b/src/main/java/de/thm/arsnova/events/DeleteRoomEvent.java similarity index 85% rename from src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java rename to src/main/java/de/thm/arsnova/events/DeleteRoomEvent.java index d99e6a4be..460355701 100644 --- a/src/main/java/de/thm/arsnova/events/DeleteSessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/DeleteRoomEvent.java @@ -17,18 +17,18 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a session is deleted. Note that this implies that all related data such as comments, * lecturer questions, and answers are deleted as well, even though those events are not fired. */ -public class DeleteSessionEvent extends SessionEvent { +public class DeleteRoomEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public DeleteSessionEvent(Object source, Session session) { - super(source, session); + public DeleteRoomEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java b/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java index c117689c4..c24c1d3e4 100644 --- a/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java +++ b/src/main/java/de/thm/arsnova/events/FeatureChangeEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a new session is created. */ -public class FeatureChangeEvent extends SessionEvent { +public class FeatureChangeEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public FeatureChangeEvent(Object source, Session session) { - super(source, session); + public FeatureChangeEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java b/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java index 4681120f3..ada63c896 100644 --- a/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java +++ b/src/main/java/de/thm/arsnova/events/FlipFlashcardsEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever voting on a question is disabled. */ -public class FlipFlashcardsEvent extends SessionEvent { +public class FlipFlashcardsEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public FlipFlashcardsEvent(Object source, Session session) { - super(source, session); + public FlipFlashcardsEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java b/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java index d196ceb85..80d106a26 100644 --- a/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockFeedbackEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever voting on a question is disabled. */ -public class LockFeedbackEvent extends SessionEvent { +public class LockFeedbackEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public LockFeedbackEvent(Object source, Session session) { - super(source, session); + public LockFeedbackEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java b/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java index 97dcfdd0a..72f51f8d3 100644 --- a/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockQuestionEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a content is disabled, i.e., it is hidden from students. */ -public class LockQuestionEvent extends SessionEvent { +public class LockQuestionEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public LockQuestionEvent(Object source, Session session, Content content) { - super(source, session); + public LockQuestionEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java index 58c001216..07d9cb4a2 100644 --- a/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockQuestionsEvent.java @@ -18,21 +18,21 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.List; /** * Fires whenever a set of contents are disabled, i.e., they are hidden from students. */ -public class LockQuestionsEvent extends SessionEvent { +public class LockQuestionsEvent extends RoomEvent { private static final long serialVersionUID = 1L; private List<Content> contents; - public LockQuestionsEvent(Object source, Session session, List<Content> contents) { - super(source, session); + public LockQuestionsEvent(Object source, Room room, List<Content> contents) { + super(source, room); this.contents = contents; } diff --git a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java index 303b647ea..c99c91545 100644 --- a/src/main/java/de/thm/arsnova/events/LockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockVoteEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.HashMap; import java.util.Map; @@ -26,14 +26,14 @@ import java.util.Map; /** * Fires whenever voting on a content is disabled. */ -public class LockVoteEvent extends SessionEvent { +public class LockVoteEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public LockVoteEvent(Object source, Session session, Content content) { - super(source, session); + public LockVoteEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/LockVotesEvent.java b/src/main/java/de/thm/arsnova/events/LockVotesEvent.java index 7288fe96e..d90f6c366 100644 --- a/src/main/java/de/thm/arsnova/events/LockVotesEvent.java +++ b/src/main/java/de/thm/arsnova/events/LockVotesEvent.java @@ -18,21 +18,21 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.List; /** * Fires whenever voting of multiple contents is disabled. */ -public class LockVotesEvent extends SessionEvent { +public class LockVotesEvent extends RoomEvent { private static final long serialVersionUID = 1L; private List<Content> contents; - public LockVotesEvent(Object source, Session session, List<Content> contents) { - super(source, session); + public LockVotesEvent(Object source, Room room, List<Content> contents) { + super(source, room); this.contents = contents; } diff --git a/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java b/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java index 2f268e733..9b3139ad6 100644 --- a/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewAnswerEvent.java @@ -20,12 +20,12 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a new answer is added. */ -public class NewAnswerEvent extends SessionEvent { +public class NewAnswerEvent extends RoomEvent { private static final long serialVersionUID = 1L; @@ -35,8 +35,8 @@ public class NewAnswerEvent extends SessionEvent { private final Content content; - public NewAnswerEvent(Object source, Session session, Answer answer, UserAuthentication user, Content content) { - super(source, session); + public NewAnswerEvent(Object source, Room room, Answer answer, UserAuthentication user, Content content) { + super(source, room); this.answer = answer; this.user = user; this.content = content; diff --git a/src/main/java/de/thm/arsnova/events/NewCommentEvent.java b/src/main/java/de/thm/arsnova/events/NewCommentEvent.java index 345b54c3a..126e4f106 100644 --- a/src/main/java/de/thm/arsnova/events/NewCommentEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewCommentEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Comment; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a new comment is added. */ -public class NewCommentEvent extends SessionEvent { +public class NewCommentEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Comment comment; - public NewCommentEvent(Object source, Session session, Comment comment) { - super(source, session); + public NewCommentEvent(Object source, Room room, Comment comment) { + super(source, room); this.comment = comment; } diff --git a/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java b/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java index 9c807a788..fe8862534 100644 --- a/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewFeedbackEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever the feedback changes. */ -public class NewFeedbackEvent extends SessionEvent { +public class NewFeedbackEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public NewFeedbackEvent(Object source, Session session) { - super(source, session); + public NewFeedbackEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java b/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java index 7771ec181..a5b14842b 100644 --- a/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewQuestionEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a new content is added. */ -public class NewQuestionEvent extends SessionEvent { +public class NewQuestionEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public NewQuestionEvent(Object source, Session session, Content content) { - super(source, session); + public NewQuestionEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/NewSessionEvent.java b/src/main/java/de/thm/arsnova/events/NewRoomEvent.java similarity index 84% rename from src/main/java/de/thm/arsnova/events/NewSessionEvent.java rename to src/main/java/de/thm/arsnova/events/NewRoomEvent.java index a61e9e0dd..601fefb4f 100644 --- a/src/main/java/de/thm/arsnova/events/NewSessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/NewRoomEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a new session is created. */ -public class NewSessionEvent extends SessionEvent { +public class NewRoomEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public NewSessionEvent(Object source, Session session) { - super(source, session); + public NewRoomEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java index 83fb938ec..517b5ce33 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundCancelEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a peer instruction round is canceled. @@ -27,8 +27,8 @@ public class PiRoundCancelEvent extends PiRoundEndEvent { private static final long serialVersionUID = 1L; - public PiRoundCancelEvent(Object source, Session session, Content content) { - super(source, session, content); + public PiRoundCancelEvent(Object source, Room room, Content content) { + super(source, room, content); } @Override diff --git a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java index fc53399d6..1e2430e54 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundDelayedStartEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.HashMap; import java.util.Map; @@ -27,7 +27,7 @@ import java.util.Map; * Fires whenever a delayed peer instruction round is initiated. The delayed part denotes that this round might not * have been started yet. */ -public class PiRoundDelayedStartEvent extends SessionEvent { +public class PiRoundDelayedStartEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final String questionId; @@ -36,8 +36,8 @@ public class PiRoundDelayedStartEvent extends SessionEvent { private final String questionVariant; private int piRound; - public PiRoundDelayedStartEvent(Object source, Session session, Content content) { - super(source, session); + public PiRoundDelayedStartEvent(Object source, Room room, Content content) { + super(source, room); this.questionId = content.getId(); this.startTime = content.getPiRoundStartTime(); this.endTime = content.getPiRoundEndTime(); diff --git a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java index 366c92a71..471f3b73d 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundEndEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.HashMap; import java.util.Map; @@ -26,15 +26,15 @@ import java.util.Map; /** * Fires whenever a peer instruction round has ended. */ -public class PiRoundEndEvent extends SessionEvent { +public class PiRoundEndEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final String questionId; private final String questionVariant; - public PiRoundEndEvent(Object source, Session session, Content content) { - super(source, session); + public PiRoundEndEvent(Object source, Room room, Content content) { + super(source, room); questionId = content.getId(); questionVariant = content.getQuestionVariant(); } diff --git a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java index 8a7cebfeb..293dd31b9 100644 --- a/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java +++ b/src/main/java/de/thm/arsnova/events/PiRoundResetEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.HashMap; import java.util.Map; @@ -26,15 +26,15 @@ import java.util.Map; /** * Fires whenever a peer instruction round is reset. */ -public class PiRoundResetEvent extends SessionEvent { +public class PiRoundResetEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final String questionId; private final String questionVariant; - public PiRoundResetEvent(Object source, Session session, Content content) { - super(source, session); + public PiRoundResetEvent(Object source, Room room, Content content) { + super(source, room); questionId = content.getId(); questionVariant = content.getQuestionVariant(); } diff --git a/src/main/java/de/thm/arsnova/events/SessionEvent.java b/src/main/java/de/thm/arsnova/events/RoomEvent.java similarity index 76% rename from src/main/java/de/thm/arsnova/events/SessionEvent.java rename to src/main/java/de/thm/arsnova/events/RoomEvent.java index ae85d3b10..a4fb5cdcb 100644 --- a/src/main/java/de/thm/arsnova/events/SessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/RoomEvent.java @@ -17,23 +17,23 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** - * Base class for all {@link ArsnovaEvent}s that are related to a session. + * Base class for all {@link ArsnovaEvent}s that are related to a room. */ -public abstract class SessionEvent extends ArsnovaEvent { +public abstract class RoomEvent extends ArsnovaEvent { private static final long serialVersionUID = 1L; - private final Session session; + private final Room room; - public SessionEvent(Object source, Session session) { + public RoomEvent(Object source, Room room) { super(source); - this.session = session; + this.room = room; } - public Session getSession() { - return session; + public Room getRoom() { + return room; } } diff --git a/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java b/src/main/java/de/thm/arsnova/events/StatusRoomEvent.java similarity index 84% rename from src/main/java/de/thm/arsnova/events/StatusSessionEvent.java rename to src/main/java/de/thm/arsnova/events/StatusRoomEvent.java index 17abf8c2d..6d4307db0 100644 --- a/src/main/java/de/thm/arsnova/events/StatusSessionEvent.java +++ b/src/main/java/de/thm/arsnova/events/StatusRoomEvent.java @@ -17,17 +17,17 @@ */ package de.thm.arsnova.events; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever the status of a session changes, i.e., it is enabled or disabled. */ -public class StatusSessionEvent extends SessionEvent { +public class StatusRoomEvent extends RoomEvent { private static final long serialVersionUID = 1L; - public StatusSessionEvent(Object source, Session session) { - super(source, session); + public StatusRoomEvent(Object source, Room room) { + super(source, room); } @Override diff --git a/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java b/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java index 7d545cd69..5a92add97 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockQuestionEvent.java @@ -18,19 +18,19 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; /** * Fires whenever a content is enabled, i.e., it becomes visible to students. */ -public class UnlockQuestionEvent extends SessionEvent { +public class UnlockQuestionEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public UnlockQuestionEvent(Object source, Session session, Content content) { - super(source, session); + public UnlockQuestionEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java b/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java index f30a992df..76614913f 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockQuestionsEvent.java @@ -18,21 +18,21 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.List; /** * Fires whenever a set of contents are enabled, i.e., they become visible to students. */ -public class UnlockQuestionsEvent extends SessionEvent { +public class UnlockQuestionsEvent extends RoomEvent { private static final long serialVersionUID = 1L; private List<Content> contents; - public UnlockQuestionsEvent(Object source, Session session, List<Content> contents) { - super(source, session); + public UnlockQuestionsEvent(Object source, Room room, List<Content> contents) { + super(source, room); this.contents = contents; } diff --git a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java index 1a2e875fd..f824b1901 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockVoteEvent.java @@ -18,7 +18,7 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.HashMap; import java.util.Map; @@ -26,14 +26,14 @@ import java.util.Map; /** * Fires whenever voting on a content is enabled. */ -public class UnlockVoteEvent extends SessionEvent { +public class UnlockVoteEvent extends RoomEvent { private static final long serialVersionUID = 1L; private final Content content; - public UnlockVoteEvent(Object source, Session session, Content content) { - super(source, session); + public UnlockVoteEvent(Object source, Room room, Content content) { + super(source, room); this.content = content; } diff --git a/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java b/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java index c7df28fa4..7f907cdb0 100644 --- a/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java +++ b/src/main/java/de/thm/arsnova/events/UnlockVotesEvent.java @@ -18,21 +18,21 @@ package de.thm.arsnova.events; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.List; /** * Fires whenever voting of multiple contents is enabled. */ -public class UnlockVotesEvent extends SessionEvent { +public class UnlockVotesEvent extends RoomEvent { private static final long serialVersionUID = 1L; private List<Content> contents; - public UnlockVotesEvent(Object source, Session session, List<Content> contents) { - super(source, session); + public UnlockVotesEvent(Object source, Room room, List<Content> contents) { + super(source, room); this.contents = contents; } diff --git a/src/main/java/de/thm/arsnova/persistance/SessionRepository.java b/src/main/java/de/thm/arsnova/persistance/RoomRepository.java similarity index 51% rename from src/main/java/de/thm/arsnova/persistance/SessionRepository.java rename to src/main/java/de/thm/arsnova/persistance/RoomRepository.java index 66f0498e3..07cfe6ec6 100644 --- a/src/main/java/de/thm/arsnova/persistance/SessionRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/RoomRepository.java @@ -20,27 +20,27 @@ package de.thm.arsnova.persistance; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.migration.v2.LoggedIn; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.entities.migration.v2.RoomInfo; import de.thm.arsnova.entities.transport.ImportExportSession; import org.springframework.data.repository.CrudRepository; import java.util.List; -public interface SessionRepository extends CrudRepository<Session, String> { - Session findByKeyword(String keyword); - List<Session> findInactiveGuestSessionsMetadata(long lastActivityBefore); - List<Session> findByUser(UserAuthentication user, int start, int limit); - List<Session> findByUsername(String username, int start, int limit); - List<Session> findAllForPublicPool(); - List<Session> findForPublicPoolByUser(UserAuthentication user); - List<Session> findVisitedByUsername(String username, int start, int limit); - List<SessionInfo> getMySessionsInfo(UserAuthentication user, int start, int limit); - List<SessionInfo> findInfosForPublicPool(); - List<SessionInfo> findInfosForPublicPoolByUser(UserAuthentication user); - List<SessionInfo> findInfoForVisitedByUser(UserAuthentication currentUser, int start, int limit); - List<Session> findSessionsByCourses(List<Course> courses); - SessionInfo importSession(UserAuthentication user, ImportExportSession importSession); +public interface RoomRepository extends CrudRepository<Room, String> { + Room findByKeyword(String keyword); + List<Room> findInactiveGuestSessionsMetadata(long lastActivityBefore); + List<Room> findByUser(UserAuthentication user, int start, int limit); + List<Room> findByUsername(String username, int start, int limit); + List<Room> findAllForPublicPool(); + List<Room> findForPublicPoolByUser(UserAuthentication user); + List<Room> findVisitedByUsername(String username, int start, int limit); + List<RoomInfo> getMySessionsInfo(UserAuthentication user, int start, int limit); + List<RoomInfo> findInfosForPublicPool(); + List<RoomInfo> findInfosForPublicPoolByUser(UserAuthentication user); + List<RoomInfo> findInfoForVisitedByUser(UserAuthentication currentUser, int start, int limit); + List<Room> findSessionsByCourses(List<Course> courses); + RoomInfo importSession(UserAuthentication user, ImportExportSession importSession); ImportExportSession exportSession(String sessionkey, Boolean withAnswer, Boolean withFeedbackQuestions); - LoggedIn registerAsOnlineUser(UserAuthentication user, Session session); + LoggedIn registerAsOnlineUser(UserAuthentication user, Room room); } diff --git a/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java b/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java index 4d8f729a0..cc0b890a7 100644 --- a/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/SessionStatisticsRepository.java @@ -1,8 +1,8 @@ package de.thm.arsnova.persistance; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.services.score.Score; -import de.thm.arsnova.entities.migration.v2.Session; public interface SessionStatisticsRepository { - Score getLearningProgress(Session session); + Score getLearningProgress(Room room); } diff --git a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbCommentRepository.java b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbCommentRepository.java index 3eb714da6..bf2ba838b 100644 --- a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbCommentRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbCommentRepository.java @@ -116,7 +116,7 @@ public class CouchDbCommentRepository extends CouchDbCrudRepository<Comment> imp .includeDocs(true), Comment.class); // for (Comment comment : comments) { -// comment.setSessionId(session.getKeyword()); +// comment.setRoomId(session.getKeyword()); // } return comments; @@ -136,7 +136,7 @@ public class CouchDbCommentRepository extends CouchDbCrudRepository<Comment> imp .includeDocs(true), Comment.class); // for (Comment comment : comments) { -// comment.setSessionId(session.getKeyword()); +// comment.setRoomId(session.getKeyword()); // } return comments; diff --git a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbRoomRepository.java similarity index 78% rename from src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java rename to src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbRoomRepository.java index 8b81adff8..1538ae893 100644 --- a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbRoomRepository.java @@ -21,14 +21,14 @@ import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.migration.v2.Comment; import de.thm.arsnova.entities.migration.v2.LoggedIn; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.SessionInfo; -import de.thm.arsnova.entities.migration.v2.VisitedSession; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.entities.migration.v2.RoomInfo; +import de.thm.arsnova.entities.migration.v2.VisitedRoom; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.exceptions.NotFoundException; import de.thm.arsnova.persistance.LogEntryRepository; import de.thm.arsnova.persistance.MotdRepository; -import de.thm.arsnova.persistance.SessionRepository; +import de.thm.arsnova.persistance.RoomRepository; import org.ektorp.ComplexKey; import org.ektorp.CouchDbConnector; import org.ektorp.DocumentNotFoundException; @@ -50,8 +50,8 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> implements SessionRepository { - private static final Logger logger = LoggerFactory.getLogger(CouchDbSessionRepository.class); +public class CouchDbRoomRepository extends CouchDbCrudRepository<Room> implements RoomRepository { + private static final Logger logger = LoggerFactory.getLogger(CouchDbRoomRepository.class); @Autowired private LogEntryRepository dbLogger; @@ -59,40 +59,40 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp @Autowired private MotdRepository motdRepository; - public CouchDbSessionRepository(final CouchDbConnector db, final boolean createIfNotExists) { - super(Session.class, db, "by_keyword", createIfNotExists); + public CouchDbRoomRepository(final CouchDbConnector db, final boolean createIfNotExists) { + super(Room.class, db, "by_keyword", createIfNotExists); } @Override - @Cacheable("sessions") - public Session findByKeyword(final String keyword) { - final List<Session> session = queryView("by_keyword", keyword); + @Cacheable("rooms") + public Room findByKeyword(final String keyword) { + final List<Room> roomList = queryView("by_keyword", keyword); - return !session.isEmpty() ? session.get(0) : null; + return !roomList.isEmpty() ? roomList.get(0) : null; } /* TODO: Move to service layer. */ private String getSessionKeyword(final String internalSessionId) throws IOException { - final Session session = get(internalSessionId); - if (session == null) { + final Room room = get(internalSessionId); + if (room == null) { logger.error("No session found for internal id {}.", internalSessionId); return null; } - return session.getKeyword(); + return room.getKeyword(); } @Override - public List<Session> findVisitedByUsername(final String username, final int start, final int limit) { + public List<Room> findVisitedByUsername(final String username, final int start, final int limit) { final int qSkip = start > 0 ? start : -1; final int qLimit = limit > 0 ? limit : -1; try { final ViewResult visitedSessionResult = db.queryView(createQuery("visited_sessions_by_user") .designDocId("_design/LoggedIn").key(username)); - final List<Session> visitedSessions = visitedSessionResult.getRows().stream().map(vs -> { - final Session s = new Session(); + final List<Room> visitedSessions = visitedSessionResult.getRows().stream().map(vs -> { + final Room s = new Room(); s.setId(vs.getValueAsNode().get("_id").asText()); s.setKeyword(vs.getValueAsNode().get("keyword").asText()); s.setName(vs.getValueAsNode().get("name").asText()); @@ -105,14 +105,14 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } // Filter sessions that don't exist anymore, also filter my own sessions - final List<Session> result = new ArrayList<>(); - final List<Session> filteredSessions = new ArrayList<>(); - for (final Session s : visitedSessions) { + final List<Room> result = new ArrayList<>(); + final List<Room> filteredSessions = new ArrayList<>(); + for (final Room s : visitedSessions) { try { /* FIXME: caching (getSessionFromKeyword) */ - final Session session = findByKeyword(s.getKeyword()); - if (session != null && !(session.getCreator().equals(username))) { - result.add(session); + final Room room = findByKeyword(s.getKeyword()); + if (room != null && !(room.getCreator().equals(username))) { + result.add(room); } else { filteredSessions.add(s); } @@ -124,9 +124,9 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp return result; } // Update document to remove sessions that don't exist anymore - final List<VisitedSession> newVisitedSessions = new ArrayList<>(); - for (final Session s : result) { - newVisitedSessions.add(new VisitedSession(s)); + final List<VisitedRoom> newVisitedSessions = new ArrayList<>(); + for (final Room s : result) { + newVisitedSessions.add(new VisitedRoom(s)); } try { @@ -144,8 +144,8 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } @Override - public List<SessionInfo> findInfoForVisitedByUser(final UserAuthentication user, final int start, final int limit) { - final List<Session> sessions = findVisitedByUsername(user.getUsername(), start, limit); + public List<RoomInfo> findInfoForVisitedByUser(final UserAuthentication user, final int start, final int limit) { + final List<Room> sessions = findVisitedByUsername(user.getUsername(), start, limit); if (sessions.isEmpty()) { return new ArrayList<>(); } @@ -153,20 +153,20 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } @Override - public List<Session> findSessionsByCourses(final List<Course> courses) { + public List<Room> findSessionsByCourses(final List<Course> courses) { return queryView("by_courseid", ComplexKey.of(courses.stream().map(Course::getId).collect(Collectors.toList()))); } @Override - public List<Session> findInactiveGuestSessionsMetadata(final long lastActivityBefore) { + public List<Room> findInactiveGuestSessionsMetadata(final long lastActivityBefore) { final ViewResult result = db.queryView( createQuery("by_lastactivity_for_guests").endKey(lastActivityBefore)); final int[] count = new int[3]; - List<Session> sessions = new ArrayList<>(); + List<Room> sessions = new ArrayList<>(); for (final ViewResult.Row row : result.getRows()) { - final Session s = new Session(); + final Room s = new Room(); s.setId(row.getId()); s.setRevision(row.getValueAsNode().get("_rev").asText()); sessions.add(s); @@ -177,10 +177,10 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp /* TODO: Move to service layer. */ @Override - public SessionInfo importSession(final UserAuthentication user, final ImportExportSession importSession) { + public RoomInfo importSession(final UserAuthentication user, final ImportExportSession importSession) { /* FIXME: not yet migrated - move to service layer */ throw new UnsupportedOperationException(); -// final Session session = this.saveSession(user, importSession.generateSessionEntity(user)); +// final Room session = this.saveSession(user, importSession.generateSessionEntity(user)); // final List<Document> questions = new ArrayList<>(); // // We need to remember which answers belong to which question. // // The answers need a questionId, so we first store the questions to get the IDs. @@ -196,7 +196,7 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp // // add session id to all questions and generate documents // for (final ImportExportSession.ImportExportContent question : importSession.getQuestions()) { // final Document doc = toQuestionDocument(session, question); -// question.setSessionId(session.getId()); +// question.setRoomId(session.getId()); // questions.add(doc); // mapping.put(doc, question); // } @@ -212,7 +212,7 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp // final Answer a = answer.generateAnswerEntity(user, question); // final Document answerDoc = new Document(); // answerDoc.put("type", "skill_question_answer"); -// answerDoc.put("sessionId", a.getSessionId()); +// answerDoc.put("sessionId", a.getRoomId()); // answerDoc.put("questionId", a.getQuestionId()); // answerDoc.put("answerSubject", a.getAnswerSubject()); // answerDoc.put("questionVariant", a.getQuestionVariant()); @@ -274,7 +274,7 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp /* FIXME: not yet migrated - move to service layer */ throw new UnsupportedOperationException(); // final ImportExportSession importExportSession = new ImportExportSession(); -// final Session session = getDatabaseDao().getSessionFromKeyword(sessionkey); +// final Room session = getDatabaseDao().getSessionFromKeyword(sessionkey); // importExportSession.setSessionFromSessionObject(session); // final List<Content> questionList = getDatabaseDao().getAllSkillQuestions(session); // for (final Content question : questionList) { @@ -313,7 +313,7 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } /* TODO: Move to service layer. */ - private SessionInfo calculateSessionInfo(final ImportExportSession importExportSession, final Session session) { + private RoomInfo calculateSessionInfo(final ImportExportSession importExportSession, final Room room) { int unreadComments = 0; int numUnanswered = 0; int numAnswers = 0; @@ -328,7 +328,7 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp numUnanswered++; } } - final SessionInfo info = new SessionInfo(session); + final RoomInfo info = new RoomInfo(room); info.setNumQuestions(importExportSession.getQuestions().size()); info.setNumUnanswered(numUnanswered); info.setNumAnswers(numAnswers); @@ -338,12 +338,12 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } @Override - public List<Session> findByUser(final UserAuthentication user, final int start, final int limit) { + public List<Room> findByUser(final UserAuthentication user, final int start, final int limit) { return findByUsername(user.getUsername(), start, limit); } @Override - public List<Session> findByUsername(final String username, final int start, final int limit) { + public List<Room> findByUsername(final String username, final int start, final int limit) { final int qSkip = start > 0 ? start : -1; final int qLimit = limit > 0 ? limit : -1; @@ -355,36 +355,36 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp .startKey(ComplexKey.of(null, username)) .endKey(ComplexKey.of(null, username, ComplexKey.emptyObject())) .includeDocs(true), - Session.class); + Room.class); } @Override - public List<Session> findAllForPublicPool() { + public List<Room> findAllForPublicPool() { // TODO replace with new view return queryView("partial_by_ppsubject_name_for_publicpool"); } @Override - public List<SessionInfo> findInfosForPublicPool() { - final List<Session> sessions = this.findAllForPublicPool(); + public List<RoomInfo> findInfosForPublicPool() { + final List<Room> sessions = this.findAllForPublicPool(); return getInfosForSessions(sessions); } @Override - public List<Session> findForPublicPoolByUser(final UserAuthentication user) { + public List<Room> findForPublicPoolByUser(final UserAuthentication user) { /* TODO: Only load IDs and check against cache for data. */ return db.queryView( createQuery("partial_by_sessiontype_creator_name") .startKey(ComplexKey.of("public_pool", user.getUsername())) .endKey(ComplexKey.of("public_pool", user.getUsername(), ComplexKey.emptyObject())) .includeDocs(true), - Session.class); + Room.class); } /* TODO: Move to service layer. */ @Override - public List<SessionInfo> findInfosForPublicPoolByUser(final UserAuthentication user) { - final List<Session> sessions = this.findForPublicPoolByUser(user); + public List<RoomInfo> findInfosForPublicPoolByUser(final UserAuthentication user) { + final List<Room> sessions = this.findForPublicPoolByUser(user); if (sessions.isEmpty()) { return new ArrayList<>(); } @@ -393,8 +393,8 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp /* TODO: Move to service layer. */ @Override - public List<SessionInfo> getMySessionsInfo(final UserAuthentication user, final int start, final int limit) { - final List<Session> sessions = this.findByUser(user, start, limit); + public List<RoomInfo> getMySessionsInfo(final UserAuthentication user, final int start, final int limit) { + final List<Room> sessions = this.findByUser(user, start, limit); if (sessions.isEmpty()) { return new ArrayList<>(); } @@ -402,8 +402,8 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } /* TODO: Move to service layer. */ - private List<SessionInfo> getInfosForSessions(final List<Session> sessions) { - final List<String> sessionIds = sessions.stream().map(Session::getId).collect(Collectors.toList()); + private List<RoomInfo> getInfosForSessions(final List<Room> sessions) { + final List<String> sessionIds = sessions.stream().map(Room::getId).collect(Collectors.toList()); final ViewQuery questionCountView = createQuery("by_sessionid").designDocId("_design/Content") .group(true).keys(sessionIds); final ViewQuery answerCountView = createQuery("by_sessionid").designDocId("_design/Answer") @@ -417,18 +417,18 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp } /* TODO: Move to service layer. */ - private List<SessionInfo> getInfosForVisitedSessions(final List<Session> sessions, final UserAuthentication user) { + private List<RoomInfo> getInfosForVisitedSessions(final List<Room> sessions, final UserAuthentication user) { final ViewQuery answeredQuestionsView = createQuery("by_user_sessionid").designDocId("_design/Answer") .keys(sessions.stream().map(session -> ComplexKey.of(user.getUsername(), session.getId())).collect(Collectors.toList())); final ViewQuery contentIdsView = createQuery("by_sessionid").designDocId("_design/Content") - .keys(sessions.stream().map(Session::getId).collect(Collectors.toList())); + .keys(sessions.stream().map(Room::getId).collect(Collectors.toList())); return getVisitedSessionInfoData(sessions, answeredQuestionsView, contentIdsView); } /* TODO: Move to service layer. */ - private List<SessionInfo> getVisitedSessionInfoData( - final List<Session> sessions, + private List<RoomInfo> getVisitedSessionInfoData( + final List<Room> rooms, final ViewQuery answeredQuestionsView, final ViewQuery contentIdsView) { final Map<String, Set<String>> answeredQuestionsMap = new HashMap<>(); @@ -460,7 +460,7 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp // For each session, count the question IDs that are not yet answered final Map<String, Integer> unansweredQuestionsCountMap = new HashMap<>(); - for (final Session s : sessions) { + for (final Room s : rooms) { if (!contentIdMap.containsKey(s.getId())) { continue; } @@ -474,23 +474,23 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp unansweredQuestionsCountMap.put(s.getId(), contentIdsInSession.size()); } - final List<SessionInfo> sessionInfos = new ArrayList<>(); - for (final Session session : sessions) { + final List<RoomInfo> roomInfos = new ArrayList<>(); + for (final Room room : rooms) { int numUnanswered = 0; - if (unansweredQuestionsCountMap.containsKey(session.getId())) { - numUnanswered = unansweredQuestionsCountMap.get(session.getId()); + if (unansweredQuestionsCountMap.containsKey(room.getId())) { + numUnanswered = unansweredQuestionsCountMap.get(room.getId()); } - final SessionInfo info = new SessionInfo(session); + final RoomInfo info = new RoomInfo(room); info.setNumUnanswered(numUnanswered); - sessionInfos.add(info); + roomInfos.add(info); } - return sessionInfos; + return roomInfos; } /* TODO: Move to service layer. */ - private List<SessionInfo> getSessionInfoData( - final List<Session> sessions, + private List<RoomInfo> getSessionInfoData( + final List<Room> rooms, final ViewQuery questionCountView, final ViewQuery answerCountView, final ViewQuery commentCountView, @@ -508,38 +508,38 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp .stream().map(row -> new AbstractMap.SimpleImmutableEntry<>(row.getKey(), row.getValueAsInt())) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - final List<SessionInfo> sessionInfos = new ArrayList<>(); - for (final Session session : sessions) { + final List<RoomInfo> roomInfos = new ArrayList<>(); + for (final Room room : rooms) { int numQuestions = 0; int numAnswers = 0; int numComments = 0; int numUnreadComments = 0; - if (questionCountMap.containsKey(session.getId())) { - numQuestions = questionCountMap.get(session.getId()); + if (questionCountMap.containsKey(room.getId())) { + numQuestions = questionCountMap.get(room.getId()); } - if (answerCountMap.containsKey(session.getId())) { - numAnswers = answerCountMap.get(session.getId()); + if (answerCountMap.containsKey(room.getId())) { + numAnswers = answerCountMap.get(room.getId()); } - if (commentCountMap.containsKey(session.getId())) { - numComments = commentCountMap.get(session.getId()); + if (commentCountMap.containsKey(room.getId())) { + numComments = commentCountMap.get(room.getId()); } - if (unreadCommentCountMap.containsKey(session.getId())) { - numUnreadComments = unreadCommentCountMap.get(session.getId()); + if (unreadCommentCountMap.containsKey(room.getId())) { + numUnreadComments = unreadCommentCountMap.get(room.getId()); } - final SessionInfo info = new SessionInfo(session); + final RoomInfo info = new RoomInfo(room); info.setNumQuestions(numQuestions); info.setNumAnswers(numAnswers); info.setNumInterposed(numComments); info.setNumUnredInterposed(numUnreadComments); - sessionInfos.add(info); + roomInfos.add(info); } - return sessionInfos; + return roomInfos; } /* TODO: Move to service layer. */ @Override - public LoggedIn registerAsOnlineUser(final UserAuthentication user, final Session session) { + public LoggedIn registerAsOnlineUser(final UserAuthentication user, final Room room) { LoggedIn loggedIn = new LoggedIn(); try { final List<LoggedIn> loggedInList = db.queryView(createQuery("all").designDocId("_design/LoggedIn").key(user.getUsername()), LoggedIn.class); @@ -548,14 +548,14 @@ public class CouchDbSessionRepository extends CouchDbCrudRepository<Session> imp loggedIn = loggedInList.get(0); /* Do not clutter CouchDB. Only update once every 3 hours per session. */ - if (loggedIn.getSessionId().equals(session.getId()) && loggedIn.getTimestamp() > System.currentTimeMillis() - 3 * 3600000) { + if (loggedIn.getSessionId().equals(room.getId()) && loggedIn.getTimestamp() > System.currentTimeMillis() - 3 * 3600000) { return loggedIn; } } loggedIn.setUser(user.getUsername()); - loggedIn.setSessionId(session.getId()); - loggedIn.addVisitedSession(session); + loggedIn.setSessionId(room.getId()); + loggedIn.addVisitedSession(room); loggedIn.updateTimestamp(); if (loggedIn.getId() == null) { diff --git a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java index 214c061b4..7e30cc936 100644 --- a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbSessionStatisticsRepository.java @@ -2,7 +2,7 @@ package de.thm.arsnova.persistance.couchdb; import com.fasterxml.jackson.databind.JsonNode; import de.thm.arsnova.services.score.Score; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.persistance.SessionStatisticsRepository; import org.ektorp.ComplexKey; import org.ektorp.CouchDbConnector; @@ -15,13 +15,13 @@ public class CouchDbSessionStatisticsRepository extends CouchDbRepositorySupport } @Override - public Score getLearningProgress(final Session session) { + public Score getLearningProgress(final Room room) { final ViewResult maximumValueResult = db.queryView(createQuery("maximum_value_of_question") - .startKey(ComplexKey.of(session.getId())) - .endKey(ComplexKey.of(session.getId(), ComplexKey.emptyObject()))); + .startKey(ComplexKey.of(room.getId())) + .endKey(ComplexKey.of(room.getId(), ComplexKey.emptyObject()))); final ViewResult answerSumResult = db.queryView(createQuery("question_value_achieved_for_user") - .startKey(ComplexKey.of(session.getId())) - .endKey(ComplexKey.of(session.getId(), ComplexKey.emptyObject()))); + .startKey(ComplexKey.of(room.getId())) + .endKey(ComplexKey.of(room.getId(), ComplexKey.emptyObject()))); final Score courseScore = new Score(); // no results found diff --git a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbVisitedSessionRepository.java b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbVisitedSessionRepository.java index 82a760743..9d8a256f4 100644 --- a/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbVisitedSessionRepository.java +++ b/src/main/java/de/thm/arsnova/persistance/couchdb/CouchDbVisitedSessionRepository.java @@ -1,7 +1,7 @@ package de.thm.arsnova.persistance.couchdb; import com.google.common.collect.Lists; -import de.thm.arsnova.entities.migration.v2.VisitedSession; +import de.thm.arsnova.entities.migration.v2.VisitedRoom; import de.thm.arsnova.persistance.LogEntryRepository; import de.thm.arsnova.persistance.VisitedSessionRepository; import org.ektorp.BulkDeleteDocument; @@ -17,7 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; -public class CouchDbVisitedSessionRepository extends CouchDbRepositorySupport<VisitedSession> implements VisitedSessionRepository { +public class CouchDbVisitedSessionRepository extends CouchDbRepositorySupport<VisitedRoom> implements VisitedSessionRepository { private static final int BULK_PARTITION_SIZE = 500; private static final Logger logger = LoggerFactory.getLogger(CouchDbVisitedSessionRepository.class); @@ -26,7 +26,7 @@ public class CouchDbVisitedSessionRepository extends CouchDbRepositorySupport<Vi private LogEntryRepository dbLogger; public CouchDbVisitedSessionRepository(final CouchDbConnector db, final boolean createIfNotExists) { - super(VisitedSession.class, db, createIfNotExists); + super(VisitedRoom.class, db, createIfNotExists); } @Override diff --git a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java index 9dbe6af16..712d6f518 100644 --- a/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java +++ b/src/main/java/de/thm/arsnova/security/ApplicationPermissionEvaluator.java @@ -20,10 +20,10 @@ package de.thm.arsnova.security; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.migration.v2.Comment; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.persistance.CommentRepository; import de.thm.arsnova.persistance.ContentRepository; -import de.thm.arsnova.persistance.SessionRepository; +import de.thm.arsnova.persistance.RoomRepository; import org.pac4j.oauth.profile.facebook.FacebookProfile; import org.pac4j.oauth.profile.google2.Google2Profile; import org.pac4j.oauth.profile.twitter.TwitterProfile; @@ -46,7 +46,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { private String[] adminAccounts; @Autowired - private SessionRepository sessionRepository; + private RoomRepository roomRepository; @Autowired private CommentRepository commentRepository; @@ -66,8 +66,8 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { final String username = getUsername(authentication); return hasAdminRole(username) - || (targetDomainObject instanceof Session - && hasSessionPermission(username, ((Session) targetDomainObject), permission.toString())) + || (targetDomainObject instanceof Room + && hasSessionPermission(username, ((Room) targetDomainObject), permission.toString())) || (targetDomainObject instanceof Content && hasContentPermission(username, ((Content) targetDomainObject), permission.toString())) || (targetDomainObject instanceof Comment @@ -91,7 +91,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { switch (targetType) { case "session": - final Session targetSession = sessionRepository.findByKeyword(targetId.toString()); + final Room targetSession = roomRepository.findByKeyword(targetId.toString()); return targetSession != null && hasSessionPermission(username, targetSession, permission.toString()); case "content": final Content targetContent = contentRepository.findOne(targetId.toString()); @@ -106,7 +106,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { private boolean hasSessionPermission( final String username, - final Session targetSession, + final Room targetSession, final String permission) { switch (permission) { case "read": @@ -128,13 +128,13 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { final String permission) { switch (permission) { case "read": - return sessionRepository.findOne(targetContent.getSessionId()).isActive(); + return roomRepository.findOne(targetContent.getSessionId()).isActive(); case "create": case "owner": case "update": case "delete": - final Session session = sessionRepository.findOne(targetContent.getSessionId()); - return session != null && session.getCreator().equals(username); + final Room room = roomRepository.findOne(targetContent.getSessionId()); + return room != null && room.getCreator().equals(username); default: return false; } @@ -146,7 +146,7 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { final String permission) { switch (permission) { case "create": - return !username.isEmpty() && sessionRepository.findOne(targetComment.getSessionId()).isActive(); + return !username.isEmpty() && roomRepository.findOne(targetComment.getSessionId()).isActive(); case "owner": case "update": return targetComment.getCreator() != null && targetComment.getCreator().equals(username); @@ -157,9 +157,9 @@ public class ApplicationPermissionEvaluator implements PermissionEvaluator { } /* Allow reading & deletion by session owner */ - final Session session = sessionRepository.findOne(targetComment.getSessionId()); + final Room room = roomRepository.findOne(targetComment.getSessionId()); - return session != null && session.getCreator().equals(username); + return room != null && room.getCreator().equals(username); default: return false; } diff --git a/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java b/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java index 62141d4df..04d79af54 100644 --- a/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/CommentServiceImpl.java @@ -3,14 +3,14 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.migration.v2.Comment; import de.thm.arsnova.entities.migration.v2.CommentReadingCount; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.events.DeleteCommentEvent; import de.thm.arsnova.events.NewCommentEvent; import de.thm.arsnova.exceptions.ForbiddenException; import de.thm.arsnova.exceptions.NotFoundException; import de.thm.arsnova.exceptions.UnauthorizedException; import de.thm.arsnova.persistance.CommentRepository; -import de.thm.arsnova.persistance.SessionRepository; +import de.thm.arsnova.persistance.RoomRepository; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; @@ -29,18 +29,18 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem private CommentRepository commentRepository; - private SessionRepository sessionRepository; + private RoomRepository roomRepository; private ApplicationEventPublisher publisher; public CommentServiceImpl( CommentRepository repository, - SessionRepository sessionRepository, + RoomRepository roomRepository, UserService userService, @Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) { super(Comment.class, repository, jackson2HttpMessageConverter.getObjectMapper()); this.commentRepository = repository; - this.sessionRepository = sessionRepository; + this.roomRepository = roomRepository; this.userService = userService; } @@ -52,9 +52,9 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem @Override @PreAuthorize("isAuthenticated()") public boolean save(final Comment comment) { - final Session session = sessionRepository.findByKeyword(comment.getSessionId()); + final Room room = roomRepository.findByKeyword(comment.getSessionId()); final UserAuthentication user = userService.getCurrentUser(); - comment.setSessionId(session.getId()); + comment.setSessionId(room.getId()); comment.setCreator(user.getUsername()); comment.setRead(false); if (comment.getTimestamp() == 0) { @@ -63,7 +63,7 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem final Comment result = super.create(comment); if (null != result) { - final NewCommentEvent event = new NewCommentEvent(this, session, result); + final NewCommentEvent event = new NewCommentEvent(this, room, result); this.publisher.publishEvent(event); return true; } @@ -79,23 +79,23 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem } commentRepository.delete(comment); - final Session session = sessionRepository.findByKeyword(comment.getSessionId()); - final DeleteCommentEvent event = new DeleteCommentEvent(this, session, comment); + final Room room = roomRepository.findByKeyword(comment.getSessionId()); + final DeleteCommentEvent event = new DeleteCommentEvent(this, room, comment); this.publisher.publishEvent(event); } @Override @PreAuthorize("isAuthenticated()") public void deleteBySessionKey(final String sessionKeyword) { - final Session session = sessionRepository.findByKeyword(sessionKeyword); - if (session == null) { + final Room room = roomRepository.findByKeyword(sessionKeyword); + if (room == null) { throw new UnauthorizedException(); } final UserAuthentication user = getCurrentUser(); - if (session.isCreator(user)) { - commentRepository.deleteBySessionId(session.getId()); + if (room.isCreator(user)) { + commentRepository.deleteBySessionId(room.getId()); } else { - commentRepository.deleteBySessionIdAndUser(session.getId(), user); + commentRepository.deleteBySessionIdAndUser(room.getId(), user); } } @@ -108,31 +108,31 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem @Override @PreAuthorize("isAuthenticated()") public CommentReadingCount countRead(final String sessionKey, String username) { - final Session session = sessionRepository.findByKeyword(sessionKey); - if (session == null) { + final Room room = roomRepository.findByKeyword(sessionKey); + if (room == null) { throw new NotFoundException(); } if (username == null) { - return commentRepository.countReadingBySessionId(session.getId()); + return commentRepository.countReadingBySessionId(room.getId()); } else { UserAuthentication currentUser = userService.getCurrentUser(); if (!currentUser.getUsername().equals(username)) { throw new ForbiddenException(); } - return commentRepository.countReadingBySessionIdAndUser(session.getId(), currentUser); + return commentRepository.countReadingBySessionIdAndUser(room.getId(), currentUser); } } @Override @PreAuthorize("isAuthenticated()") public List<Comment> getBySessionKey(final String sessionKey, final int offset, final int limit) { - final Session session = this.getSession(sessionKey); + final Room room = this.getSession(sessionKey); final UserAuthentication user = getCurrentUser(); - if (session.isCreator(user)) { - return commentRepository.findBySessionId(session.getId(), offset, limit); + if (room.isCreator(user)) { + return commentRepository.findBySessionId(room.getId(), offset, limit); } else { - return commentRepository.findBySessionIdAndUser(session.getId(), user, offset, limit); + return commentRepository.findBySessionIdAndUser(room.getId(), user, offset, limit); } } @@ -153,11 +153,11 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem if (comment == null) { throw new NotFoundException(); } - final Session session = sessionRepository.findOne(comment.getSessionId()); - if (!comment.isCreator(user) && !session.isCreator(user)) { + final Room room = roomRepository.findOne(comment.getSessionId()); + if (!comment.isCreator(user) && !room.isCreator(user)) { throw new UnauthorizedException(); } - if (session.isCreator(user)) { + if (room.isCreator(user)) { comment.setRead(true); save(comment); } @@ -172,11 +172,11 @@ public class CommentServiceImpl extends DefaultEntityServiceImpl<Comment> implem return user; } - private Session getSession(final String sessionkey) { - final Session session = sessionRepository.findByKeyword(sessionkey); - if (session == null) { + private Room getSession(final String sessionkey) { + final Room room = roomRepository.findByKeyword(sessionkey); + if (room == null) { throw new NotFoundException(); } - return session; + return room; } } diff --git a/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java b/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java index d67b80237..e1220b27e 100644 --- a/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/ContentServiceImpl.java @@ -18,19 +18,19 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.UserAuthentication; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.entities.transport.AnswerQueueElement; import de.thm.arsnova.persistance.LogEntryRepository; +import de.thm.arsnova.persistance.RoomRepository; import de.thm.arsnova.util.ImageUtils; import de.thm.arsnova.entities.migration.v2.Answer; import de.thm.arsnova.entities.migration.v2.Content; -import de.thm.arsnova.entities.migration.v2.Session; import de.thm.arsnova.events.*; import de.thm.arsnova.exceptions.BadRequestException; import de.thm.arsnova.exceptions.NotFoundException; import de.thm.arsnova.exceptions.UnauthorizedException; import de.thm.arsnova.persistance.AnswerRepository; import de.thm.arsnova.persistance.ContentRepository; -import de.thm.arsnova.persistance.SessionRepository; import org.ektorp.DbAccessException; import org.ektorp.DocumentNotFoundException; import org.slf4j.Logger; @@ -68,7 +68,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem private LogEntryRepository dbLogger; - private SessionRepository sessionRepository; + private RoomRepository roomRepository; private ContentRepository contentRepository; @@ -90,7 +90,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem public ContentServiceImpl( ContentRepository repository, AnswerRepository answerRepository, - SessionRepository sessionRepository, + RoomRepository roomRepository, LogEntryRepository dbLogger, UserService userService, ImageUtils imageUtils, @@ -98,7 +98,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem super(Content.class, repository, jackson2HttpMessageConverter.getObjectMapper()); this.contentRepository = repository; this.answerRepository = answerRepository; - this.sessionRepository = sessionRepository; + this.roomRepository = roomRepository; this.dbLogger = dbLogger; this.userService = userService; this.imageUtils = imageUtils; @@ -124,7 +124,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem // Send NewAnswerEvents ... for (AnswerQueueElement e : elements) { - this.publisher.publishEvent(new NewAnswerEvent(this, e.getSession(), e.getAnswer(), e.getUser(), e.getQuestion())); + this.publisher.publishEvent(new NewAnswerEvent(this, e.getRoom(), e.getAnswer(), e.getUser(), e.getQuestion())); } } catch (final DbAccessException e) { logger.error("Could not bulk save answers from queue.", e); @@ -141,7 +141,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem content.setPiRound(1); } content.updateRoundManagementState(); - //content.setSessionKeyword(sessionRepository.getSessionFromId(content.getSessionId()).getKeyword()); + //content.setSessionKeyword(roomRepository.getSessionFromId(content.getRoomId()).getKeyword()); return content; } catch (final DocumentNotFoundException e) { @@ -185,8 +185,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem throw new NotFoundException(); } - final Session session = sessionRepository.findOne(content.getSessionId()); - if (user == null || session == null || !session.isCreator(user)) { + final Room room = roomRepository.findOne(content.getSessionId()); + if (user == null || room == null || !room.isCreator(user)) { throw new UnauthorizedException(); } @@ -202,10 +202,10 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem contentRepository.save(content); if (!oldContent.isActive() && content.isActive()) { - final UnlockQuestionEvent event = new UnlockQuestionEvent(this, session, content); + final UnlockQuestionEvent event = new UnlockQuestionEvent(this, room, content); this.publisher.publishEvent(event); } else if (oldContent.isActive() && !content.isActive()) { - final LockQuestionEvent event = new LockQuestionEvent(this, session, content); + final LockQuestionEvent event = new LockQuestionEvent(this, room, content); this.publisher.publishEvent(event); } return content; @@ -216,28 +216,28 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("isAuthenticated()") //@Cacheable("contentlists") public List<Content> getBySessionKey(final String sessionkey) { - final Session session = getSession(sessionkey); + final Room room = getSession(sessionkey); final UserAuthentication user = userService.getCurrentUser(); - if (session.isCreator(user)) { - return contentRepository.findBySessionIdForSpeaker(session.getId()); + if (room.isCreator(user)) { + return contentRepository.findBySessionIdForSpeaker(room.getId()); } else { - return contentRepository.findBySessionIdForUsers(session.getId()); + return contentRepository.findBySessionIdForUsers(room.getId()); } } @Override @PreAuthorize("isAuthenticated()") public int countBySessionKey(final String sessionkey) { - final Session session = sessionRepository.findByKeyword(sessionkey); - return contentRepository.countBySessionId(session.getId()); + final Room room = roomRepository.findByKeyword(sessionkey); + return contentRepository.countBySessionId(room.getId()); } /* FIXME: #content.getSessionKeyword() cannot be checked since keyword is no longer set for content. */ @Override @PreAuthorize("hasPermission(#content.getSessionKeyword(), 'session', 'owner')") public Content save(final Content content) { - final Session session = sessionRepository.findByKeyword(content.getSessionKeyword()); - content.setSessionId(session.getId()); + final Room room = roomRepository.findByKeyword(content.getSessionKeyword()); + content.setSessionId(room.getId()); content.setTimestamp(System.currentTimeMillis() / 1000L); if ("freetext".equals(content.getQuestionType())) { @@ -256,9 +256,9 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem } } - final Content result = save(session.getId(), content); + final Content result = save(room.getId(), content); - final NewQuestionEvent event = new NewQuestionEvent(this, session, result); + final NewQuestionEvent event = new NewQuestionEvent(this, room, result); this.publisher.publishEvent(event); return result; @@ -280,8 +280,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem throw new NotFoundException(); } - final Session session = sessionRepository.findOne(content.getSessionId()); - if (session == null) { + final Room room = roomRepository.findOne(content.getSessionId()); + if (room == null) { throw new UnauthorizedException(); } @@ -293,67 +293,67 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem logger.error("Could not delete content {}.", contentId, e); } - final DeleteQuestionEvent event = new DeleteQuestionEvent(this, session, content); + final DeleteQuestionEvent event = new DeleteQuestionEvent(this, room, content); this.publisher.publishEvent(event); } @PreAuthorize("hasPermission(#session, 'owner')") @Caching(evict = { @CacheEvict(value = "contents", allEntries = true), - @CacheEvict(value = "contentlists", key = "#session.getId()"), - @CacheEvict(value = "lecturecontentlists", key = "#session.getId()", condition = "'lecture'.equals(#variant)"), - @CacheEvict(value = "preparationcontentlists", key = "#session.getId()", condition = "'preparation'.equals(#variant)"), - @CacheEvict(value = "flashcardcontentlists", key = "#session.getId()", condition = "'flashcard'.equals(#variant)") }) - private void deleteBySessionAndVariant(final Session session, final String variant) { + @CacheEvict(value = "contentlists", key = "#room.getId()"), + @CacheEvict(value = "lecturecontentlists", key = "#room.getId()", condition = "'lecture'.equals(#variant)"), + @CacheEvict(value = "preparationcontentlists", key = "#room.getId()", condition = "'preparation'.equals(#variant)"), + @CacheEvict(value = "flashcardcontentlists", key = "#room.getId()", condition = "'flashcard'.equals(#variant)") }) + private void deleteBySessionAndVariant(final Room room, final String variant) { final List<String> contentIds; if ("all".equals(variant)) { - contentIds = contentRepository.findIdsBySessionId(session.getId()); + contentIds = contentRepository.findIdsBySessionId(room.getId()); } else { - contentIds = contentRepository.findIdsBySessionIdAndVariant(session.getId(), variant); + contentIds = contentRepository.findIdsBySessionIdAndVariant(room.getId(), variant); } final int answerCount = answerRepository.deleteByContentIds(contentIds); - final int contentCount = contentRepository.deleteBySessionId(session.getId()); + final int contentCount = contentRepository.deleteBySessionId(room.getId()); dbLogger.log("delete", "type", "question", "questionCount", contentCount); dbLogger.log("delete", "type", "answer", "answerCount", answerCount); - final DeleteAllQuestionsEvent event = new DeleteAllQuestionsEvent(this, session); + final DeleteAllQuestionsEvent event = new DeleteAllQuestionsEvent(this, room); this.publisher.publishEvent(event); } @Override @PreAuthorize("isAuthenticated()") public void deleteAllContent(final String sessionkey) { - final Session session = getSessionWithAuthCheck(sessionkey); - deleteBySessionAndVariant(session, "all"); + final Room room = getSessionWithAuthCheck(sessionkey); + deleteBySessionAndVariant(room, "all"); } @Override @PreAuthorize("isAuthenticated()") public void deleteLectureQuestions(final String sessionkey) { - final Session session = getSessionWithAuthCheck(sessionkey); - deleteBySessionAndVariant(session, "lecture"); + final Room room = getSessionWithAuthCheck(sessionkey); + deleteBySessionAndVariant(room, "lecture"); } @Override @PreAuthorize("isAuthenticated()") public void deletePreparationQuestions(final String sessionkey) { - final Session session = getSessionWithAuthCheck(sessionkey); - deleteBySessionAndVariant(session, "preparation"); + final Room room = getSessionWithAuthCheck(sessionkey); + deleteBySessionAndVariant(room, "preparation"); } @Override @PreAuthorize("isAuthenticated()") public void deleteFlashcards(final String sessionkey) { - final Session session = getSessionWithAuthCheck(sessionkey); - deleteBySessionAndVariant(session, "flashcard"); + final Room room = getSessionWithAuthCheck(sessionkey); + deleteBySessionAndVariant(room, "flashcard"); } @Override @PreAuthorize("isAuthenticated() and hasPermission(#questionId, 'content', 'owner')") public void startNewPiRound(final String questionId, UserAuthentication user) { final Content content = contentRepository.findOne(questionId); - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); if (null == user) { user = userService.getCurrentUser(); @@ -366,7 +366,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem content.updateRoundManagementState(); update(content); - this.publisher.publishEvent(new PiRoundEndEvent(this, session, content)); + this.publisher.publishEvent(new PiRoundEndEvent(this, room, content)); } @Override @@ -375,7 +375,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem final ContentService contentService = this; final UserAuthentication user = userService.getCurrentUser(); final Content content = contentRepository.findOne(questionId); - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); final Date date = new Date(); final Timer timer = new Timer(); @@ -383,7 +383,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem content.updateRoundStartVariables(date, endDate); update(content); - this.publisher.publishEvent(new PiRoundDelayedStartEvent(this, session, content)); + this.publisher.publishEvent(new PiRoundDelayedStartEvent(this, room, content)); timerList.put(questionId, timer); timer.schedule(new TimerTask() { @@ -398,7 +398,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("hasPermission(#questionId, 'content', 'owner')") public void cancelPiRoundChange(final String questionId) { final Content content = contentRepository.findOne(questionId); - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); cancelDelayedPiRoundChange(questionId); content.resetRoundManagementState(); @@ -411,7 +411,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem } update(content); - this.publisher.publishEvent(new PiRoundCancelEvent(this, session, content)); + this.publisher.publishEvent(new PiRoundCancelEvent(this, room, content)); } @Override @@ -430,7 +430,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @CacheEvict("answerlists") public void resetPiRoundState(final String questionId) { final Content content = contentRepository.findOne(questionId); - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); cancelDelayedPiRoundChange(questionId); if ("freetext".equals(content.getQuestionType())) { @@ -442,14 +442,14 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem content.resetRoundManagementState(); answerRepository.deleteByContentId(content.getId()); update(content); - this.publisher.publishEvent(new PiRoundResetEvent(this, session, content)); + this.publisher.publishEvent(new PiRoundResetEvent(this, room, content)); } @Override @PreAuthorize("hasPermission(#questionId, 'content', 'owner')") public void setVotingAdmission(final String questionId, final boolean disableVoting) { final Content content = contentRepository.findOne(questionId); - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); content.setVotingDisabled(disableVoting); if (!disableVoting && !content.isActive()) { @@ -460,9 +460,9 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem } ArsnovaEvent event; if (disableVoting) { - event = new LockVoteEvent(this, session, content); + event = new LockVoteEvent(this, room, content); } else { - event = new UnlockVoteEvent(this, session, content); + event = new UnlockVoteEvent(this, room, content); } this.publisher.publishEvent(event); } @@ -476,8 +476,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @CacheEvict(value = "flashcardcontentlists", key = "#sessionId") }) public void setVotingAdmissions(final String sessionkey, final boolean disableVoting, List<Content> contents) { final UserAuthentication user = getCurrentUser(); - final Session session = getSession(sessionkey); - if (!session.isCreator(user)) { + final Room room = getSession(sessionkey); + if (!room.isCreator(user)) { throw new UnauthorizedException(); } for (final Content q : contents) { @@ -487,9 +487,9 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem } ArsnovaEvent event; if (disableVoting) { - event = new LockVotesEvent(this, session, contents); + event = new LockVotesEvent(this, room, contents); } else { - event = new UnlockVotesEvent(this, session, contents); + event = new UnlockVotesEvent(this, room, contents); } this.publisher.publishEvent(event); } @@ -498,21 +498,21 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("isAuthenticated()") public void setVotingAdmissionForAllQuestions(final String sessionkey, final boolean disableVoting) { final UserAuthentication user = getCurrentUser(); - final Session session = getSession(sessionkey); - if (!session.isCreator(user)) { + final Room room = getSession(sessionkey); + if (!room.isCreator(user)) { throw new UnauthorizedException(); } - final List<Content> contents = contentRepository.findBySessionId(session.getId()); - setVotingAdmissionForAllQuestions(session.getId(), disableVoting); + final List<Content> contents = contentRepository.findBySessionId(room.getId()); + setVotingAdmissionForAllQuestions(room.getId(), disableVoting); } - private Session getSessionWithAuthCheck(final String sessionKeyword) { + private Room getSessionWithAuthCheck(final String sessionKeyword) { final UserAuthentication user = userService.getCurrentUser(); - final Session session = sessionRepository.findByKeyword(sessionKeyword); - if (user == null || session == null || !session.isCreator(user)) { + final Room room = roomRepository.findByKeyword(sessionKeyword); + if (user == null || room == null || !room.isCreator(user)) { throw new UnauthorizedException(); } - return session; + return room; } @Override @@ -528,8 +528,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("isAuthenticated()") public List<String> getUnAnsweredQuestionIds(final String sessionKey) { final UserAuthentication user = getCurrentUser(); - final Session session = getSession(sessionKey); - return contentRepository.findUnansweredIdsBySessionIdAndUser(session.getId(), user); + final Room room = getSession(sessionKey); + return contentRepository.findUnansweredIdsBySessionIdAndUser(room.getId(), user); } private UserAuthentication getCurrentUser() { @@ -559,8 +559,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem if (answer.isRead()) { return; } - final Session session = sessionRepository.findOne(answer.getSessionId()); - if (session.isCreator(user)) { + final Room room = roomRepository.findOne(answer.getSessionId()); + if (room.isCreator(user)) { answer.setRead(true); answerRepository.save(answer); } @@ -672,7 +672,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @Override @PreAuthorize("isAuthenticated()") public List<Answer> getMyAnswersBySessionKey(final String sessionKey) { - final Session session = getSession(sessionKey); + final Room room = getSession(sessionKey); // Load contents first because we are only interested in answers of the latest piRound. final List<Content> contents = getBySessionKey(sessionKey); final Map<String, Content> questionIdToQuestion = new HashMap<>(); @@ -681,13 +681,13 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem } /* filter answers by active piRound per question */ - final List<Answer> answers = answerRepository.findByUserSessionId(userService.getCurrentUser(), session.getId()); + final List<Answer> answers = answerRepository.findByUserSessionId(userService.getCurrentUser(), room.getId()); final List<Answer> filteredAnswers = new ArrayList<>(); for (final Answer answer : answers) { final Content content = questionIdToQuestion.get(answer.getQuestionId()); if (content == null) { // Content is not present. Most likely it has been locked by the - // Session's creator. Locked Questions do not appear in this list. + // Room's creator. Locked Questions do not appear in this list. continue; } if (0 == answer.getPiRound() && !"freetext".equals(content.getQuestionType())) { @@ -718,11 +718,11 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem if (content == null) { throw new NotFoundException(); } - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); answer.setUser(user.getUsername()); answer.setQuestionId(content.getId()); - answer.setSessionId(session.getId()); + answer.setSessionId(room.getId()); answer.setQuestionVariant(content.getQuestionVariant()); answer.setQuestionValue(content.calculateValue(answer)); answer.setTimestamp(new Date().getTime()); @@ -743,7 +743,7 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem answer.setPiRound(content.getPiRound()); } - this.answerQueue.offer(new AnswerQueueElement(session, content, answer, user)); + this.answerQueue.offer(new AnswerQueueElement(room, content, answer, user)); return answer; } @@ -763,12 +763,12 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem imageUtils.generateThumbnailImage(realAnswer); content.checkTextStrictOptions(realAnswer); } - final Session session = sessionRepository.findOne(content.getSessionId()); + final Room room = roomRepository.findOne(content.getSessionId()); answer.setUser(user.getUsername()); answer.setQuestionId(content.getId()); - answer.setSessionId(session.getId()); + answer.setSessionId(room.getId()); answerRepository.save(realAnswer); - this.publisher.publishEvent(new NewAnswerEvent(this, session, answer, user, content)); + this.publisher.publishEvent(new NewAnswerEvent(this, room, answer, user, content)); return answer; } @@ -782,13 +782,13 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem throw new NotFoundException(); } final UserAuthentication user = userService.getCurrentUser(); - final Session session = sessionRepository.findOne(content.getSessionId()); - if (user == null || session == null || !session.isCreator(user)) { + final Room room = roomRepository.findOne(content.getSessionId()); + if (user == null || room == null || !room.isCreator(user)) { throw new UnauthorizedException(); } answerRepository.delete(answerId); - this.publisher.publishEvent(new DeleteAnswerEvent(this, session, content)); + this.publisher.publishEvent(new DeleteAnswerEvent(this, room, content)); } /* FIXME: caching */ @@ -796,12 +796,12 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("isAuthenticated()") //@Cacheable("lecturecontentlists") public List<Content> getLectureQuestions(final String sessionkey) { - final Session session = getSession(sessionkey); + final Room room = getSession(sessionkey); final UserAuthentication user = userService.getCurrentUser(); - if (session.isCreator(user)) { - return contentRepository.findBySessionIdOnlyLectureVariant(session.getId()); + if (room.isCreator(user)) { + return contentRepository.findBySessionIdOnlyLectureVariant(room.getId()); } else { - return contentRepository.findBySessionIdOnlyLectureVariantAndActive(session.getId()); + return contentRepository.findBySessionIdOnlyLectureVariantAndActive(room.getId()); } } @@ -810,12 +810,12 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("isAuthenticated()") //@Cacheable("flashcardcontentlists") public List<Content> getFlashcards(final String sessionkey) { - final Session session = getSession(sessionkey); + final Room room = getSession(sessionkey); final UserAuthentication user = userService.getCurrentUser(); - if (session.isCreator(user)) { - return contentRepository.findBySessionIdOnlyFlashcardVariant(session.getId()); + if (room.isCreator(user)) { + return contentRepository.findBySessionIdOnlyFlashcardVariant(room.getId()); } else { - return contentRepository.findBySessionIdOnlyFlashcardVariantAndActive(session.getId()); + return contentRepository.findBySessionIdOnlyFlashcardVariantAndActive(room.getId()); } } @@ -824,12 +824,12 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("isAuthenticated()") //@Cacheable("preparationcontentlists") public List<Content> getPreparationQuestions(final String sessionkey) { - final Session session = getSession(sessionkey); + final Room room = getSession(sessionkey); final UserAuthentication user = userService.getCurrentUser(); - if (session.isCreator(user)) { - return contentRepository.findBySessionIdOnlyPreparationVariant(session.getId()); + if (room.isCreator(user)) { + return contentRepository.findBySessionIdOnlyPreparationVariant(room.getId()); } else { - return contentRepository.findBySessionIdOnlyPreparationVariantAndActive(session.getId()); + return contentRepository.findBySessionIdOnlyPreparationVariantAndActive(room.getId()); } } @@ -845,12 +845,12 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem return contents; } - private Session getSession(final String sessionkey) { - final Session session = sessionRepository.findByKeyword(sessionkey); - if (session == null) { + private Room getSession(final String sessionkey) { + final Room room = roomRepository.findByKeyword(sessionkey); + if (room == null) { throw new NotFoundException(); } - return session; + return room; } @Override @@ -935,8 +935,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @Override public List<String> getUnAnsweredLectureQuestionIds(final String sessionkey, final UserAuthentication user) { - final Session session = getSession(sessionkey); - return contentRepository.findUnansweredIdsBySessionIdAndUserOnlyLectureVariant(session.getId(), user); + final Room room = getSession(sessionkey); + return contentRepository.findUnansweredIdsBySessionIdAndUserOnlyLectureVariant(room.getId(), user); } @Override @@ -948,8 +948,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @Override public List<String> getUnAnsweredPreparationQuestionIds(final String sessionkey, final UserAuthentication user) { - final Session session = getSession(sessionkey); - return contentRepository.findUnansweredIdsBySessionIdAndUserOnlyPreparationVariant(session.getId(), user); + final Room room = getSession(sessionkey); + return contentRepository.findUnansweredIdsBySessionIdAndUserOnlyPreparationVariant(room.getId(), user); } @Override @@ -957,11 +957,11 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem public void publishAll(final String sessionkey, final boolean publish) { /* TODO: resolve redundancies */ final UserAuthentication user = getCurrentUser(); - final Session session = getSession(sessionkey); - if (!session.isCreator(user)) { + final Room room = getSession(sessionkey); + if (!room.isCreator(user)) { throw new UnauthorizedException(); } - final List<Content> contents = contentRepository.findBySessionId(session.getId()); + final List<Content> contents = contentRepository.findBySessionId(room.getId()); publishQuestions(sessionkey, publish, contents); } @@ -974,8 +974,8 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @CacheEvict(value = "flashcardcontentlists", key = "#sessionId") }) public void publishQuestions(final String sessionkey, final boolean publish, List<Content> contents) { final UserAuthentication user = getCurrentUser(); - final Session session = getSession(sessionkey); - if (!session.isCreator(user)) { + final Room room = getSession(sessionkey); + if (!room.isCreator(user)) { throw new UnauthorizedException(); } for (final Content content : contents) { @@ -984,9 +984,9 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem contentRepository.save(contents); ArsnovaEvent event; if (publish) { - event = new UnlockQuestionsEvent(this, session, contents); + event = new UnlockQuestionsEvent(this, room, contents); } else { - event = new LockQuestionsEvent(this, session, contents); + event = new LockQuestionsEvent(this, room, contents); } this.publisher.publishEvent(event); } @@ -996,17 +996,17 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @CacheEvict(value = "answerlists", allEntries = true) public void deleteAllQuestionsAnswers(final String sessionkey) { final UserAuthentication user = getCurrentUser(); - final Session session = getSession(sessionkey); - if (!session.isCreator(user)) { + final Room room = getSession(sessionkey); + if (!room.isCreator(user)) { throw new UnauthorizedException(); } - final List<Content> contents = contentRepository.findBySessionIdAndVariantAndActive(session.getId()); - resetContentsRoundState(session.getId(), contents); + final List<Content> contents = contentRepository.findBySessionIdAndVariantAndActive(room.getId()); + resetContentsRoundState(room.getId(), contents); final List<String> contentIds = contents.stream().map(Content::getId).collect(Collectors.toList()); answerRepository.deleteAllAnswersForQuestions(contentIds); - this.publisher.publishEvent(new DeleteAllQuestionsAnswersEvent(this, session)); + this.publisher.publishEvent(new DeleteAllQuestionsAnswersEvent(this, room)); } /* TODO: Only evict cache entry for the answer's question. This requires some refactoring. */ @@ -1014,14 +1014,14 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") @CacheEvict(value = "answerlists", allEntries = true) public void deleteAllPreparationAnswers(String sessionkey) { - final Session session = getSession(sessionkey); + final Room room = getSession(sessionkey); - final List<Content> contents = contentRepository.findBySessionIdAndVariantAndActive(session.getId(), "preparation"); - resetContentsRoundState(session.getId(), contents); + final List<Content> contents = contentRepository.findBySessionIdAndVariantAndActive(room.getId(), "preparation"); + resetContentsRoundState(room.getId(), contents); final List<String> contentIds = contents.stream().map(Content::getId).collect(Collectors.toList()); answerRepository.deleteAllAnswersForQuestions(contentIds); - this.publisher.publishEvent(new DeleteAllPreparationAnswersEvent(this, session)); + this.publisher.publishEvent(new DeleteAllPreparationAnswersEvent(this, room)); } /* TODO: Only evict cache entry for the answer's question. This requires some refactoring. */ @@ -1029,14 +1029,14 @@ public class ContentServiceImpl extends DefaultEntityServiceImpl<Content> implem @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") @CacheEvict(value = "answerlists", allEntries = true) public void deleteAllLectureAnswers(String sessionkey) { - final Session session = getSession(sessionkey); + final Room room = getSession(sessionkey); - final List<Content> contents = contentRepository.findBySessionIdAndVariantAndActive(session.getId(), "lecture"); - resetContentsRoundState(session.getId(), contents); + final List<Content> contents = contentRepository.findBySessionIdAndVariantAndActive(room.getId(), "lecture"); + resetContentsRoundState(room.getId(), contents); final List<String> contentIds = contents.stream().map(Content::getId).collect(Collectors.toList()); answerRepository.deleteAllAnswersForQuestions(contentIds); - this.publisher.publishEvent(new DeleteAllLectureAnswersEvent(this, session)); + this.publisher.publishEvent(new DeleteAllLectureAnswersEvent(this, room)); } @Caching(evict = { diff --git a/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java b/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java index ed8c3c088..6da2a0425 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackServiceImpl.java @@ -19,12 +19,12 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.events.DeleteFeedbackForSessionsEvent; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.events.DeleteFeedbackForRoomsEvent; import de.thm.arsnova.events.NewFeedbackEvent; import de.thm.arsnova.exceptions.NoContentException; import de.thm.arsnova.exceptions.NotFoundException; -import de.thm.arsnova.persistance.SessionRepository; +import de.thm.arsnova.persistance.RoomRepository; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; @@ -52,76 +52,76 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub @Value("${feedback.cleanup}") private int cleanupFeedbackDelay; - private SessionRepository sessionRepository; + private RoomRepository roomRepository; private FeedbackStorageService feedbackStorage; private ApplicationEventPublisher publisher; - public FeedbackServiceImpl(FeedbackStorageService feedbackStorage, SessionRepository sessionRepository) { + public FeedbackServiceImpl(FeedbackStorageService feedbackStorage, RoomRepository roomRepository) { this.feedbackStorage = feedbackStorage; - this.sessionRepository = sessionRepository; + this.roomRepository = roomRepository; } @Override @Scheduled(fixedDelay = DEFAULT_SCHEDULER_DELAY) public void cleanFeedbackVotes() { - Map<Session, List<UserAuthentication>> deletedFeedbackOfUsersInSession = feedbackStorage.cleanVotes(cleanupFeedbackDelay); + Map<Room, List<UserAuthentication>> deletedFeedbackOfUsersInSession = feedbackStorage.cleanVotes(cleanupFeedbackDelay); /* - * mapping (Session -> Users) is not suitable for web sockets, because we want to sent all affected + * mapping (Room -> Users) is not suitable for web sockets, because we want to sent all affected * sessions to a single user in one go instead of sending multiple messages for each session. Hence, * we need the mapping (User -> Sessions) */ - final Map<UserAuthentication, Set<Session>> affectedSessionsOfUsers = new HashMap<>(); + final Map<UserAuthentication, Set<Room>> affectedSessionsOfUsers = new HashMap<>(); - for (Map.Entry<Session, List<UserAuthentication>> entry : deletedFeedbackOfUsersInSession.entrySet()) { - final Session session = entry.getKey(); + for (Map.Entry<Room, List<UserAuthentication>> entry : deletedFeedbackOfUsersInSession.entrySet()) { + final Room room = entry.getKey(); final List<UserAuthentication> users = entry.getValue(); for (UserAuthentication user : users) { - Set<Session> affectedSessions; + Set<Room> affectedSessions; if (affectedSessionsOfUsers.containsKey(user)) { affectedSessions = affectedSessionsOfUsers.get(user); } else { affectedSessions = new HashSet<>(); } - affectedSessions.add(session); + affectedSessions.add(room); affectedSessionsOfUsers.put(user, affectedSessions); } } // Send feedback reset event to all affected users - for (Map.Entry<UserAuthentication, Set<Session>> entry : affectedSessionsOfUsers.entrySet()) { + for (Map.Entry<UserAuthentication, Set<Room>> entry : affectedSessionsOfUsers.entrySet()) { final UserAuthentication user = entry.getKey(); - final Set<Session> arsSessions = entry.getValue(); - this.publisher.publishEvent(new DeleteFeedbackForSessionsEvent(this, arsSessions, user)); + final Set<Room> arsSessions = entry.getValue(); + this.publisher.publishEvent(new DeleteFeedbackForRoomsEvent(this, arsSessions, user)); } // For each session that has deleted feedback, send the new feedback to all clients - for (Session session : deletedFeedbackOfUsersInSession.keySet()) { + for (Room session : deletedFeedbackOfUsersInSession.keySet()) { this.publisher.publishEvent(new NewFeedbackEvent(this, session)); } } @Override public void cleanFeedbackVotesBySessionKey(final String keyword, final int cleanupFeedbackDelayInMins) { - final Session session = sessionRepository.findByKeyword(keyword); - List<UserAuthentication> affectedUsers = feedbackStorage.cleanVotesBySession(session, cleanupFeedbackDelayInMins); - Set<Session> sessionSet = new HashSet<>(); - sessionSet.add(session); + final Room room = roomRepository.findByKeyword(keyword); + List<UserAuthentication> affectedUsers = feedbackStorage.cleanVotesByRoom(room, cleanupFeedbackDelayInMins); + Set<Room> sessionSet = new HashSet<>(); + sessionSet.add(room); // Send feedback reset event to all affected users for (UserAuthentication user : affectedUsers) { - this.publisher.publishEvent(new DeleteFeedbackForSessionsEvent(this, sessionSet, user)); + this.publisher.publishEvent(new DeleteFeedbackForRoomsEvent(this, sessionSet, user)); } // send the new feedback to all clients in affected session - this.publisher.publishEvent(new NewFeedbackEvent(this, session)); + this.publisher.publishEvent(new NewFeedbackEvent(this, room)); } @Override public Feedback getBySessionKey(final String keyword) { - final Session session = sessionRepository.findByKeyword(keyword); - if (session == null) { + final Room room = roomRepository.findByKeyword(keyword); + if (room == null) { throw new NotFoundException(); } - return feedbackStorage.getBySession(session); + return feedbackStorage.getByRoom(room); } @Override @@ -134,11 +134,11 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub @Override public double calculateAverageFeedback(final String sessionkey) { - final Session session = sessionRepository.findByKeyword(sessionkey); - if (session == null) { + final Room room = roomRepository.findByKeyword(sessionkey); + if (room == null) { throw new NotFoundException(); } - final Feedback feedback = feedbackStorage.getBySession(session); + final Feedback feedback = feedbackStorage.getByRoom(room); final List<Integer> values = feedback.getValues(); final double count = values.get(Feedback.FEEDBACK_FASTER) + values.get(Feedback.FEEDBACK_OK) + values.get(Feedback.FEEDBACK_SLOWER) + values.get(Feedback.FEEDBACK_AWAY); @@ -158,23 +158,23 @@ public class FeedbackServiceImpl implements FeedbackService, ApplicationEventPub @Override public boolean save(final String keyword, final int value, final UserAuthentication user) { - final Session session = sessionRepository.findByKeyword(keyword); - if (session == null) { + final Room room = roomRepository.findByKeyword(keyword); + if (room == null) { throw new NotFoundException(); } - feedbackStorage.save(session, value, user); + feedbackStorage.save(room, value, user); - this.publisher.publishEvent(new NewFeedbackEvent(this, session)); + this.publisher.publishEvent(new NewFeedbackEvent(this, room)); return true; } @Override public Integer getBySessionKeyAndUser(final String keyword, final UserAuthentication user) { - final Session session = sessionRepository.findByKeyword(keyword); - if (session == null) { + final Room room = roomRepository.findByKeyword(keyword); + if (room == null) { throw new NotFoundException(); } - return feedbackStorage.getBySessionAndUser(session, user); + return feedbackStorage.getByRoomAndUser(room, user); } @Override diff --git a/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java b/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java index 4bef32e90..c6596607f 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackStorageService.java @@ -2,15 +2,15 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.List; import java.util.Map; public interface FeedbackStorageService { - Feedback getBySession(Session session); - Integer getBySessionAndUser(Session session, UserAuthentication u); - void save(Session session, int value, UserAuthentication user); - Map<Session, List<UserAuthentication>> cleanVotes(int cleanupFeedbackDelay); - List<UserAuthentication> cleanVotesBySession(Session session, int cleanupFeedbackDelayInMins); + Feedback getByRoom(Room room); + Integer getByRoomAndUser(Room room, UserAuthentication u); + void save(Room room, int value, UserAuthentication user); + Map<Room, List<UserAuthentication>> cleanVotes(int cleanupFeedbackDelay); + List<UserAuthentication> cleanVotesByRoom(Room room, int cleanupFeedbackDelayInMins); } diff --git a/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java b/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java index 3b912d60a..3dda7e425 100644 --- a/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/FeedbackStorageServiceImpl.java @@ -19,7 +19,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Isolation; import org.springframework.transaction.annotation.Transactional; @@ -59,21 +59,21 @@ public class FeedbackStorageServiceImpl implements FeedbackStorageService { } } - private final Map<Session, Map<UserAuthentication, FeedbackStorageObject>> data = + private final Map<Room, Map<UserAuthentication, FeedbackStorageObject>> data = new ConcurrentHashMap<>(); @Override - public Feedback getBySession(final Session session) { + public Feedback getByRoom(final Room room) { int a = 0; int b = 0; int c = 0; int d = 0; - if (data.get(session) == null) { + if (data.get(room) == null) { return new Feedback(0, 0, 0, 0); } - for (final FeedbackStorageObject fso : data.get(session).values()) { + for (final FeedbackStorageObject fso : data.get(room).values()) { switch (fso.getValue()) { case Feedback.FEEDBACK_FASTER: a++; @@ -95,12 +95,12 @@ public class FeedbackStorageServiceImpl implements FeedbackStorageService { } @Override - public Integer getBySessionAndUser(final Session session, final UserAuthentication u) { - if (data.get(session) == null) { + public Integer getByRoomAndUser(final Room room, final UserAuthentication u) { + if (data.get(room) == null) { return null; } - for (final FeedbackStorageObject fso : data.get(session).values()) { + for (final FeedbackStorageObject fso : data.get(room).values()) { if (fso.fromUser(u)) { return fso.getValue(); } @@ -111,23 +111,23 @@ public class FeedbackStorageServiceImpl implements FeedbackStorageService { @Override @Transactional(isolation = Isolation.READ_COMMITTED) - public void save(final Session session, final int value, final UserAuthentication user) { - if (data.get(session) == null) { - data.put(session, new ConcurrentHashMap<UserAuthentication, FeedbackStorageObject>()); + public void save(final Room room, final int value, final UserAuthentication user) { + if (data.get(room) == null) { + data.put(room, new ConcurrentHashMap<UserAuthentication, FeedbackStorageObject>()); } - data.get(session).put(user, new FeedbackStorageObject(value, user)); + data.get(room).put(user, new FeedbackStorageObject(value, user)); } @Override @Transactional(isolation = Isolation.READ_COMMITTED) - public Map<Session, List<UserAuthentication>> cleanVotes(final int cleanupFeedbackDelay) { - final Map<Session, List<UserAuthentication>> removedFeedbackOfUsersInSession = new HashMap<>(); - for (final Session session : data.keySet()) { - if (session.getFeatures() == null || !session.getFeatures().isLiveClicker()) { - List<UserAuthentication> affectedUsers = cleanVotesBySession(session, cleanupFeedbackDelay); + public Map<Room, List<UserAuthentication>> cleanVotes(final int cleanupFeedbackDelay) { + final Map<Room, List<UserAuthentication>> removedFeedbackOfUsersInSession = new HashMap<>(); + for (final Room room : data.keySet()) { + if (room.getFeatures() == null || !room.getFeatures().isLiveClicker()) { + List<UserAuthentication> affectedUsers = cleanVotesByRoom(room, cleanupFeedbackDelay); if (!affectedUsers.isEmpty()) { - removedFeedbackOfUsersInSession.put(session, affectedUsers); + removedFeedbackOfUsersInSession.put(room, affectedUsers); } } } @@ -136,22 +136,22 @@ public class FeedbackStorageServiceImpl implements FeedbackStorageService { @Override @Transactional(isolation = Isolation.READ_COMMITTED) - public List<UserAuthentication> cleanVotesBySession(final Session session, final int cleanupFeedbackDelayInMins) { + public List<UserAuthentication> cleanVotesByRoom(final Room room, final int cleanupFeedbackDelayInMins) { final long timelimitInMillis = TimeUnit.MILLISECONDS.convert(cleanupFeedbackDelayInMins, TimeUnit.MINUTES); final Date maxAllowedTime = new Date(System.currentTimeMillis() - timelimitInMillis); final boolean forceClean = cleanupFeedbackDelayInMins == 0; - final Map<UserAuthentication, FeedbackStorageObject> sessionFeedbacks = data.get(session); + final Map<UserAuthentication, FeedbackStorageObject> roomFeedbacks = data.get(room); final List<UserAuthentication> affectedUsers = new ArrayList<>(); - if (sessionFeedbacks != null) { - for (final Map.Entry<UserAuthentication, FeedbackStorageObject> entry : sessionFeedbacks.entrySet()) { + if (roomFeedbacks != null) { + for (final Map.Entry<UserAuthentication, FeedbackStorageObject> entry : roomFeedbacks.entrySet()) { final UserAuthentication user = entry.getKey(); final FeedbackStorageObject feedback = entry.getValue(); final boolean timeIsUp = feedback.getTimestamp().before(maxAllowedTime); - final boolean isAwayFeedback = getBySessionAndUser(session, user).equals(Feedback.FEEDBACK_AWAY); + final boolean isAwayFeedback = getByRoomAndUser(room, user).equals(Feedback.FEEDBACK_AWAY); if (forceClean || timeIsUp && !isAwayFeedback) { - sessionFeedbacks.remove(user); + roomFeedbacks.remove(user); affectedUsers.add(user); } } diff --git a/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java b/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java index 0c8156955..34abcf4b0 100644 --- a/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/MotdServiceImpl.java @@ -19,7 +19,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.migration.v2.MotdList; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.exceptions.BadRequestException; import de.thm.arsnova.persistance.MotdListRepository; @@ -44,7 +44,7 @@ import java.util.StringTokenizer; public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements MotdService { private UserService userService; - private SessionService sessionService; + private RoomService roomService; private MotdRepository motdRepository; @@ -54,13 +54,13 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M MotdRepository repository, MotdListRepository motdListRepository, UserService userService, - SessionService sessionService, + RoomService roomService, @Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) { super(Motd.class, repository, jackson2HttpMessageConverter.getObjectMapper()); this.motdRepository = repository; this.motdListRepository = motdListRepository; this.userService = userService; - this.sessionService = sessionService; + this.roomService = roomService; } @Override @@ -143,8 +143,8 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") public Motd save(final String sessionkey, final Motd motd) { - Session session = sessionService.getByKey(sessionkey); - motd.setSessionId(session.getId()); + Room room = roomService.getByKey(sessionkey); + motd.setSessionId(room.getId()); return createOrUpdateMotd(motd); } @@ -175,7 +175,7 @@ public class MotdServiceImpl extends DefaultEntityServiceImpl<Motd> implements M Motd oldMotd = get(motd.getId()); motd.setMotdkey(oldMotd.getMotdkey()); } else { - motd.setMotdkey(sessionService.generateKey()); + motd.setMotdkey(roomService.generateKey()); } save(motd); diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/RoomService.java similarity index 55% rename from src/main/java/de/thm/arsnova/services/SessionService.java rename to src/main/java/de/thm/arsnova/services/RoomService.java index f1d72edbf..9bce5c560 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/RoomService.java @@ -19,9 +19,9 @@ package de.thm.arsnova.services; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.SessionFeature; -import de.thm.arsnova.entities.migration.v2.SessionInfo; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.entities.migration.v2.RoomFeature; +import de.thm.arsnova.entities.migration.v2.RoomInfo; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.ScoreStatistics; @@ -31,64 +31,64 @@ import java.util.UUID; /** * The functionality the session service should provide. */ -public interface SessionService extends EntityService<Session> { - Session getByKey(String keyword); +public interface RoomService extends EntityService<Room> { + Room getByKey(String keyword); - Session getForAdmin(final String keyword); + Room getForAdmin(final String keyword); - Session getInternal(String keyword, UserAuthentication user); + Room getInternal(String keyword, UserAuthentication user); - Session save(Session session); + Room save(Room session); boolean isKeyAvailable(String keyword); String generateKey(); - List<Session> getUserSessions(String username); + List<Room> getUserSessions(String username); - List<Session> getUserVisitedSessions(String username); + List<Room> getUserVisitedSessions(String username); - List<Session> getMySessions(int offset, int limit); + List<Room> getMySessions(int offset, int limit); - List<Session> getMyVisitedSessions(int offset, int limit); + List<Room> getMyVisitedSessions(int offset, int limit); int countSessionsByCourses(List<Course> courses); int activeUsers(String sessionkey); - Session setActive(String sessionkey, Boolean lock); + Room setActive(String sessionkey, Boolean lock); - Session join(String keyword, UUID socketId); + Room join(String keyword, UUID socketId); - Session update(String sessionkey, Session session); + Room update(String sessionkey, Room session); - Session updateCreator(String sessionkey, String newCreator); + Room updateCreator(String sessionkey, String newCreator); - Session updateInternal(Session session, UserAuthentication user); + Room updateInternal(Room session, UserAuthentication user); - int[] deleteCascading(Session session); + int[] deleteCascading(Room session); ScoreStatistics getLearningProgress(String sessionkey, String type, String questionVariant); ScoreStatistics getMyLearningProgress(String sessionkey, String type, String questionVariant); - List<SessionInfo> getMySessionsInfo(int offset, int limit); + List<RoomInfo> getMySessionsInfo(int offset, int limit); - List<SessionInfo> getPublicPoolSessionsInfo(); + List<RoomInfo> getPublicPoolSessionsInfo(); - List<SessionInfo> getMyPublicPoolSessionsInfo(); + List<RoomInfo> getMyPublicPoolSessionsInfo(); - List<SessionInfo> getMyVisitedSessionsInfo(int offset, int limit); + List<RoomInfo> getMyVisitedSessionsInfo(int offset, int limit); - SessionInfo importSession(ImportExportSession session); + RoomInfo importSession(ImportExportSession session); ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions); - SessionInfo copySessionToPublicPool(String sessionkey, de.thm.arsnova.entities.transport.ImportExportSession.PublicPool pp); + RoomInfo copySessionToPublicPool(String sessionkey, de.thm.arsnova.entities.transport.ImportExportSession.PublicPool pp); - SessionFeature getFeatures(String sessionkey); + RoomFeature getFeatures(String sessionkey); - SessionFeature updateFeatures(String sessionkey, SessionFeature features); + RoomFeature updateFeatures(String sessionkey, RoomFeature features); boolean lockFeedbackInput(String sessionkey, Boolean lock); diff --git a/src/main/java/de/thm/arsnova/services/SessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/RoomServiceImpl.java similarity index 57% rename from src/main/java/de/thm/arsnova/services/SessionServiceImpl.java rename to src/main/java/de/thm/arsnova/services/RoomServiceImpl.java index 35e9123f6..95798f00a 100644 --- a/src/main/java/de/thm/arsnova/services/SessionServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/RoomServiceImpl.java @@ -18,32 +18,32 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.UserAuthentication; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.persistance.AnswerRepository; import de.thm.arsnova.persistance.CommentRepository; import de.thm.arsnova.persistance.ContentRepository; import de.thm.arsnova.persistance.LogEntryRepository; +import de.thm.arsnova.persistance.RoomRepository; import de.thm.arsnova.util.ImageUtils; import de.thm.arsnova.connector.client.ConnectorClient; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.services.score.ScoreCalculatorFactory; import de.thm.arsnova.services.score.ScoreCalculator; import de.thm.arsnova.entities.ScoreOptions; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.entities.migration.v2.SessionFeature; -import de.thm.arsnova.entities.migration.v2.SessionInfo; +import de.thm.arsnova.entities.migration.v2.RoomFeature; +import de.thm.arsnova.entities.migration.v2.RoomInfo; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.entities.transport.ScoreStatistics; -import de.thm.arsnova.events.DeleteSessionEvent; +import de.thm.arsnova.events.DeleteRoomEvent; import de.thm.arsnova.events.FeatureChangeEvent; import de.thm.arsnova.events.FlipFlashcardsEvent; import de.thm.arsnova.events.LockFeedbackEvent; -import de.thm.arsnova.events.NewSessionEvent; -import de.thm.arsnova.events.StatusSessionEvent; +import de.thm.arsnova.events.NewRoomEvent; +import de.thm.arsnova.events.StatusRoomEvent; import de.thm.arsnova.exceptions.BadRequestException; import de.thm.arsnova.exceptions.ForbiddenException; import de.thm.arsnova.exceptions.NotFoundException; import de.thm.arsnova.exceptions.PayloadTooLargeException; -import de.thm.arsnova.persistance.SessionRepository; import de.thm.arsnova.persistance.VisitedSessionRepository; import org.ektorp.UpdateConflictException; import org.slf4j.Logger; @@ -70,14 +70,14 @@ import java.util.UUID; * Performs all session related operations. */ @Service -public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implements SessionService, ApplicationEventPublisherAware { +public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements RoomService, ApplicationEventPublisherAware { private static final long SESSION_INACTIVITY_CHECK_INTERVAL_MS = 30 * 60 * 1000L; - private static final Logger logger = LoggerFactory.getLogger(SessionServiceImpl.class); + private static final Logger logger = LoggerFactory.getLogger(RoomServiceImpl.class); private LogEntryRepository dbLogger; - private SessionRepository sessionRepository; + private RoomRepository roomRepository; private ContentRepository contentRepository; @@ -105,8 +105,8 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem private ApplicationEventPublisher publisher; - public SessionServiceImpl( - SessionRepository repository, + public RoomServiceImpl( + RoomRepository repository, ContentRepository contentRepository, AnswerRepository answerRepository, CommentRepository commentRepository, @@ -117,8 +117,8 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem ScoreCalculatorFactory scoreCalculatorFactory, ImageUtils imageUtils, @Qualifier("defaultJsonMessageConverter") MappingJackson2HttpMessageConverter jackson2HttpMessageConverter) { - super(Session.class, repository, jackson2HttpMessageConverter.getObjectMapper()); - this.sessionRepository = repository; + super(Room.class, repository, jackson2HttpMessageConverter.getObjectMapper()); + this.roomRepository = repository; this.contentRepository = contentRepository; this.answerRepository = answerRepository; this.commentRepository = commentRepository; @@ -130,39 +130,39 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem this.imageUtils = imageUtils; } - public static class SessionNameComparator implements Comparator<Session>, Serializable { + public static class SessionNameComparator implements Comparator<Room>, Serializable { private static final long serialVersionUID = 1L; @Override - public int compare(final Session session1, final Session session2) { - return session1.getName().compareToIgnoreCase(session2.getName()); + public int compare(final Room room1, final Room room2) { + return room1.getName().compareToIgnoreCase(room2.getName()); } } - public static class SessionInfoNameComparator implements Comparator<SessionInfo>, Serializable { + public static class SessionInfoNameComparator implements Comparator<RoomInfo>, Serializable { private static final long serialVersionUID = 1L; @Override - public int compare(final SessionInfo session1, final SessionInfo session2) { - return session1.getName().compareToIgnoreCase(session2.getName()); + public int compare(final RoomInfo roomInfo1, final RoomInfo roomInfo2) { + return roomInfo1.getName().compareToIgnoreCase(roomInfo2.getName()); } } - public static class SessionShortNameComparator implements Comparator<Session>, Serializable { + public static class SessionShortNameComparator implements Comparator<Room>, Serializable { private static final long serialVersionUID = 1L; @Override - public int compare(final Session session1, final Session session2) { - return session1.getShortName().compareToIgnoreCase(session2.getShortName()); + public int compare(final Room room1, final Room room2) { + return room1.getShortName().compareToIgnoreCase(room2.getShortName()); } } - public static class SessionInfoShortNameComparator implements Comparator<SessionInfo>, Serializable { + public static class SessionInfoShortNameComparator implements Comparator<RoomInfo>, Serializable { private static final long serialVersionUID = 1L; @Override - public int compare(final SessionInfo session1, final SessionInfo session2) { - return session1.getShortName().compareToIgnoreCase(session2.getShortName()); + public int compare(final RoomInfo roomInfo1, final RoomInfo roomInfo2) { + return roomInfo1.getShortName().compareToIgnoreCase(roomInfo2.getShortName()); } } @@ -178,18 +178,18 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem long unixTime = System.currentTimeMillis(); long lastActivityBefore = unixTime - guestSessionInactivityThresholdDays * 24 * 60 * 60 * 1000L; int totalCount[] = new int[] {0, 0, 0}; - List<Session> inactiveSessions = sessionRepository.findInactiveGuestSessionsMetadata(lastActivityBefore); - for (Session session : inactiveSessions) { - int[] count = deleteCascading(session); + List<Room> inactiveRooms = roomRepository.findInactiveGuestSessionsMetadata(lastActivityBefore); + for (Room room : inactiveRooms) { + int[] count = deleteCascading(room); totalCount[0] += count[0]; totalCount[1] += count[1]; totalCount[2] += count[2]; } - if (!inactiveSessions.isEmpty()) { - logger.info("Deleted {} inactive guest sessions.", inactiveSessions.size()); + if (!inactiveRooms.isEmpty()) { + logger.info("Deleted {} inactive guest sessions.", inactiveRooms.size()); dbLogger.log("cleanup", "type", "session", - "sessionCount", inactiveSessions.size(), + "sessionCount", inactiveRooms.size(), "questionCount", totalCount[0], "answerCount", totalCount[1], "commentCount", totalCount[2]); @@ -208,12 +208,12 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem } @Override - public Session join(final String keyword, final UUID socketId) { + public Room join(final String keyword, final UUID socketId) { /* Socket.IO solution */ - Session session = null != keyword ? sessionRepository.findByKeyword(keyword) : null; + Room room = null != keyword ? roomRepository.findByKeyword(keyword) : null; - if (null == session) { + if (null == room) { userService.removeUserFromSessionBySocketId(socketId); return null; } @@ -221,23 +221,23 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem userService.addUserToSessionBySocketId(socketId, keyword); - if (session.getCreator().equals(user.getUsername())) { - updateSessionOwnerActivity(session); + if (room.getCreator().equals(user.getUsername())) { + updateSessionOwnerActivity(room); } - sessionRepository.registerAsOnlineUser(user, session); + roomRepository.registerAsOnlineUser(user, room); - if (connectorClient != null && session.isCourseSession()) { - final String courseid = session.getCourseId(); + if (connectorClient != null && room.isCourseSession()) { + final String courseid = room.getCourseId(); if (!connectorClient.getMembership(user.getUsername(), courseid).isMember()) { throw new ForbiddenException("User is no course member."); } } - return session; + return room; } - @CachePut(value = "sessions") - private Session updateSessionOwnerActivity(final Session session) { + @CachePut(value = "rooms") + private Room updateSessionOwnerActivity(final Room session) { try { /* Do not clutter CouchDB. Only update once every 3 hours. */ if (session.getLastOwnerActivity() > System.currentTimeMillis() - 3 * 3600000) { @@ -256,14 +256,14 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem @Override @PreAuthorize("isAuthenticated()") - public Session getByKey(final String keyword) { + public Room getByKey(final String keyword) { final UserAuthentication user = userService.getCurrentUser(); return this.getInternal(keyword, user); } @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") - public Session getForAdmin(final String keyword) { - return sessionRepository.findByKeyword(keyword); + public Room getForAdmin(final String keyword) { + return roomRepository.findByKeyword(keyword); } /* @@ -271,111 +271,111 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem * TODO: Find a better way of doing this... */ @Override - public Session getInternal(final String keyword, final UserAuthentication user) { - final Session session = sessionRepository.findByKeyword(keyword); - if (session == null) { + public Room getInternal(final String keyword, final UserAuthentication user) { + final Room room = roomRepository.findByKeyword(keyword); + if (room == null) { throw new NotFoundException(); } - if (!session.isActive()) { - if (user.hasRole(UserSessionService.Role.STUDENT)) { + if (!room.isActive()) { + if (user.hasRole(UserRoomService.Role.STUDENT)) { throw new ForbiddenException("User is not session creator."); - } else if (user.hasRole(UserSessionService.Role.SPEAKER) && !session.isCreator(user)) { + } else if (user.hasRole(UserRoomService.Role.SPEAKER) && !room.isCreator(user)) { throw new ForbiddenException("User is not session creator."); } } - if (connectorClient != null && session.isCourseSession()) { - final String courseid = session.getCourseId(); + if (connectorClient != null && room.isCourseSession()) { + final String courseid = room.getCourseId(); if (!connectorClient.getMembership(user.getUsername(), courseid).isMember()) { throw new ForbiddenException("User is no course member."); } } - return session; + return room; } @Override @PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')") - public List<Session> getUserSessions(String username) { - return sessionRepository.findByUsername(username, 0, 0); + public List<Room> getUserSessions(String username) { + return roomRepository.findByUsername(username, 0, 0); } @Override @PreAuthorize("isAuthenticated()") - public List<Session> getMySessions(final int offset, final int limit) { - return sessionRepository.findByUser(userService.getCurrentUser(), offset, limit); + public List<Room> getMySessions(final int offset, final int limit) { + return roomRepository.findByUser(userService.getCurrentUser(), offset, limit); } @Override @PreAuthorize("isAuthenticated()") - public List<SessionInfo> getPublicPoolSessionsInfo() { - return sessionRepository.findInfosForPublicPool(); + public List<RoomInfo> getPublicPoolSessionsInfo() { + return roomRepository.findInfosForPublicPool(); } @Override @PreAuthorize("isAuthenticated()") - public List<SessionInfo> getMyPublicPoolSessionsInfo() { - return sessionRepository.findInfosForPublicPoolByUser(userService.getCurrentUser()); + public List<RoomInfo> getMyPublicPoolSessionsInfo() { + return roomRepository.findInfosForPublicPoolByUser(userService.getCurrentUser()); } @Override @PreAuthorize("isAuthenticated()") - public List<SessionInfo> getMySessionsInfo(final int offset, final int limit) { + public List<RoomInfo> getMySessionsInfo(final int offset, final int limit) { final UserAuthentication user = userService.getCurrentUser(); - return sessionRepository.getMySessionsInfo(user, offset, limit); + return roomRepository.getMySessionsInfo(user, offset, limit); } @Override @PreAuthorize("isAuthenticated()") - public List<Session> getMyVisitedSessions(final int offset, final int limit) { - return sessionRepository.findVisitedByUsername(userService.getCurrentUser().getUsername(), offset, limit); + public List<Room> getMyVisitedSessions(final int offset, final int limit) { + return roomRepository.findVisitedByUsername(userService.getCurrentUser().getUsername(), offset, limit); } @Override @PreAuthorize("hasPermission('', 'motd', 'admin')") - public List<Session> getUserVisitedSessions(String username) { - return sessionRepository.findVisitedByUsername(username, 0, 0); + public List<Room> getUserVisitedSessions(String username) { + return roomRepository.findVisitedByUsername(username, 0, 0); } @Override @PreAuthorize("isAuthenticated()") - public List<SessionInfo> getMyVisitedSessionsInfo(final int offset, final int limit) { - return sessionRepository.findInfoForVisitedByUser(userService.getCurrentUser(), offset, limit); + public List<RoomInfo> getMyVisitedSessionsInfo(final int offset, final int limit) { + return roomRepository.findInfoForVisitedByUser(userService.getCurrentUser(), offset, limit); } @Override @PreAuthorize("hasPermission('', 'session', 'create')") - @Caching(evict = @CacheEvict(cacheNames = "sessions", key = "#result.keyword")) - public Session save(final Session session) { - if (connectorClient != null && session.getCourseId() != null) { + @Caching(evict = @CacheEvict(cacheNames = "rooms", key = "#result.keyword")) + public Room save(final Room room) { + if (connectorClient != null && room.getCourseId() != null) { if (!connectorClient.getMembership( - userService.getCurrentUser().getUsername(), session.getCourseId()).isMember() + userService.getCurrentUser().getUsername(), room.getCourseId()).isMember() ) { throw new ForbiddenException(); } } - handleLogo(session); + handleLogo(room); // set some default values ScoreOptions lpo = new ScoreOptions(); lpo.setType("questions"); - session.setLearningProgressOptions(lpo); + room.setLearningProgressOptions(lpo); - SessionFeature sf = new SessionFeature(); + RoomFeature sf = new RoomFeature(); sf.setLecture(true); sf.setFeedback(true); sf.setInterposed(true); sf.setJitt(true); sf.setLearningProgress(true); sf.setPi(true); - session.setFeatures(sf); + room.setFeatures(sf); - session.setKeyword(generateKey()); - session.setCreationTime(System.currentTimeMillis()); - session.setCreator(userService.getCurrentUser().getUsername()); - session.setActive(true); - session.setFeedbackLock(false); + room.setKeyword(generateKey()); + room.setCreationTime(System.currentTimeMillis()); + room.setCreator(userService.getCurrentUser().getUsername()); + room.setActive(true); + room.setFeedbackLock(false); - final Session result = save(session); - this.publisher.publishEvent(new NewSessionEvent(this, result)); + final Room result = save(room); + this.publisher.publishEvent(new NewRoomEvent(this, result)); return result; } @@ -399,7 +399,7 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem @Override public int countSessionsByCourses(final List<Course> courses) { - final List<Session> sessions = sessionRepository.findSessionsByCourses(courses); + final List<Room> sessions = roomRepository.findSessionsByCourses(courses); if (sessions == null) { return 0; } @@ -413,57 +413,57 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") - public Session setActive(final String sessionkey, final Boolean lock) { - final Session session = sessionRepository.findByKeyword(sessionkey); - session.setActive(lock); - this.publisher.publishEvent(new StatusSessionEvent(this, session)); - sessionRepository.save(session); + public Room setActive(final String sessionkey, final Boolean lock) { + final Room room = roomRepository.findByKeyword(sessionkey); + room.setActive(lock); + this.publisher.publishEvent(new StatusRoomEvent(this, room)); + roomRepository.save(room); - return session; + return room; } @Override - @PreAuthorize("hasPermission(#session, 'owner')") - @CachePut(value = "sessions", key = "#session") - public Session update(final String sessionkey, final Session session) { - final Session existingSession = sessionRepository.findByKeyword(sessionkey); - - existingSession.setActive(session.isActive()); - existingSession.setShortName(session.getShortName()); - existingSession.setPpAuthorName(session.getPpAuthorName()); - existingSession.setPpAuthorMail(session.getPpAuthorMail()); - existingSession.setShortName(session.getShortName()); - existingSession.setPpAuthorName(session.getPpAuthorName()); - existingSession.setPpFaculty(session.getPpFaculty()); - existingSession.setName(session.getName()); - existingSession.setPpUniversity(session.getPpUniversity()); - existingSession.setPpDescription(session.getPpDescription()); - existingSession.setPpLevel(session.getPpLevel()); - existingSession.setPpLicense(session.getPpLicense()); - existingSession.setPpSubject(session.getPpSubject()); - existingSession.setFeedbackLock(session.getFeedbackLock()); - - handleLogo(session); - existingSession.setPpLogo(session.getPpLogo()); - - sessionRepository.save(existingSession); - - return session; + @PreAuthorize("hasPermission(#room, 'owner')") + @CachePut(value = "rooms", key = "#room") + public Room update(final String sessionkey, final Room room) { + final Room existingSession = roomRepository.findByKeyword(sessionkey); + + existingSession.setActive(room.isActive()); + existingSession.setShortName(room.getShortName()); + existingSession.setPpAuthorName(room.getPpAuthorName()); + existingSession.setPpAuthorMail(room.getPpAuthorMail()); + existingSession.setShortName(room.getShortName()); + existingSession.setPpAuthorName(room.getPpAuthorName()); + existingSession.setPpFaculty(room.getPpFaculty()); + existingSession.setName(room.getName()); + existingSession.setPpUniversity(room.getPpUniversity()); + existingSession.setPpDescription(room.getPpDescription()); + existingSession.setPpLevel(room.getPpLevel()); + existingSession.setPpLicense(room.getPpLicense()); + existingSession.setPpSubject(room.getPpSubject()); + existingSession.setFeedbackLock(room.getFeedbackLock()); + + handleLogo(room); + existingSession.setPpLogo(room.getPpLogo()); + + roomRepository.save(existingSession); + + return room; } @Override @PreAuthorize("hasPermission('', 'motd', 'admin')") - @Caching(evict = { @CacheEvict("sessions"), @CacheEvict(cacheNames = "sessions", key = "#sessionkey.keyword") }) - public Session updateCreator(String sessionkey, String newCreator) { - final Session session = sessionRepository.findByKeyword(sessionkey); - if (session == null) { + @Caching(evict = { @CacheEvict("rooms"), @CacheEvict(cacheNames = "rooms", key = "#sessionkey.keyword") }) + public Room updateCreator(String sessionkey, String newCreator) { + final Room room = roomRepository.findByKeyword(sessionkey); + if (room == null) { throw new NullPointerException("Could not load session " + sessionkey + "."); } - session.setCreator(newCreator); - save(session); + room.setCreator(newCreator); + save(room); - return save(session); + return save(room); } /* @@ -471,28 +471,28 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem * TODO: Find a better way of doing this... */ @Override - public Session updateInternal(final Session session, final UserAuthentication user) { - if (session.isCreator(user)) { - sessionRepository.save(session); - return session; + public Room updateInternal(final Room room, final UserAuthentication user) { + if (room.isCreator(user)) { + roomRepository.save(room); + return room; } return null; } @Override - @PreAuthorize("hasPermission(#session, 'owner')") - @CacheEvict("sessions") - public int[] deleteCascading(final Session session) { + @PreAuthorize("hasPermission(#room, 'owner')") + @CacheEvict("rooms") + public int[] deleteCascading(final Room room) { int[] count = new int[] {0, 0, 0}; - List<String> contentIds = contentRepository.findIdsBySessionId(session.getId()); - count[2] = commentRepository.deleteBySessionId(session.getId()); + List<String> contentIds = contentRepository.findIdsBySessionId(room.getId()); + count[2] = commentRepository.deleteBySessionId(room.getId()); count[1] = answerRepository.deleteByContentIds(contentIds); - count[0] = contentRepository.deleteBySessionId(session.getId()); - sessionRepository.delete(session); - logger.debug("Deleted session document {} and related data.", session.getId()); - dbLogger.log("delete", "type", "session", "id", session.getId()); + count[0] = contentRepository.deleteBySessionId(room.getId()); + roomRepository.delete(room); + logger.debug("Deleted session document {} and related data.", room.getId()); + dbLogger.log("delete", "type", "session", "id", room.getId()); - this.publisher.publishEvent(new DeleteSessionEvent(this, session)); + this.publisher.publishEvent(new DeleteRoomEvent(this, room)); return count; } @@ -500,25 +500,25 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'read')") public ScoreStatistics getLearningProgress(final String sessionkey, final String type, final String questionVariant) { - final Session session = sessionRepository.findByKeyword(sessionkey); + final Room room = roomRepository.findByKeyword(sessionkey); ScoreCalculator scoreCalculator = scoreCalculatorFactory.create(type, questionVariant); - return scoreCalculator.getCourseProgress(session); + return scoreCalculator.getCourseProgress(room); } @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'read')") public ScoreStatistics getMyLearningProgress(final String sessionkey, final String type, final String questionVariant) { - final Session session = sessionRepository.findByKeyword(sessionkey); + final Room room = roomRepository.findByKeyword(sessionkey); final UserAuthentication user = userService.getCurrentUser(); ScoreCalculator scoreCalculator = scoreCalculatorFactory.create(type, questionVariant); - return scoreCalculator.getMyProgress(session, user); + return scoreCalculator.getMyProgress(room, user); } @Override @PreAuthorize("hasPermission('', 'session', 'create')") - public SessionInfo importSession(ImportExportSession importSession) { + public RoomInfo importSession(ImportExportSession importSession) { final UserAuthentication user = userService.getCurrentUser(); - final SessionInfo info = sessionRepository.importSession(user, importSession); + final RoomInfo info = roomRepository.importSession(user, importSession); if (info == null) { throw new NullPointerException("Could not import session."); } @@ -528,17 +528,17 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") public ImportExportSession exportSession(String sessionkey, Boolean withAnswerStatistics, Boolean withFeedbackQuestions) { - return sessionRepository.exportSession(sessionkey, withAnswerStatistics, withFeedbackQuestions); + return roomRepository.exportSession(sessionkey, withAnswerStatistics, withFeedbackQuestions); } @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") - public SessionInfo copySessionToPublicPool(String sessionkey, de.thm.arsnova.entities.transport.ImportExportSession.PublicPool pp) { - ImportExportSession temp = sessionRepository.exportSession(sessionkey, false, false); + public RoomInfo copySessionToPublicPool(String sessionkey, de.thm.arsnova.entities.transport.ImportExportSession.PublicPool pp) { + ImportExportSession temp = roomRepository.exportSession(sessionkey, false, false); temp.getSession().setPublicPool(pp); temp.getSession().setSessionType("public_pool"); final UserAuthentication user = userService.getCurrentUser(); - return sessionRepository.importSession(user, temp); + return roomRepository.importSession(user, temp); } @Override @@ -548,62 +548,62 @@ public class SessionServiceImpl extends DefaultEntityServiceImpl<Session> implem @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'read')") - public SessionFeature getFeatures(String sessionkey) { - return sessionRepository.findByKeyword(sessionkey).getFeatures(); + public RoomFeature getFeatures(String sessionkey) { + return roomRepository.findByKeyword(sessionkey).getFeatures(); } @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") - public SessionFeature updateFeatures(String sessionkey, SessionFeature features) { - final Session session = sessionRepository.findByKeyword(sessionkey); + public RoomFeature updateFeatures(String sessionkey, RoomFeature features) { + final Room room = roomRepository.findByKeyword(sessionkey); final UserAuthentication user = userService.getCurrentUser(); - session.setFeatures(features); - this.publisher.publishEvent(new FeatureChangeEvent(this, session)); - sessionRepository.save(session); + room.setFeatures(features); + this.publisher.publishEvent(new FeatureChangeEvent(this, room)); + roomRepository.save(room); - return session.getFeatures(); + return room.getFeatures(); } @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") public boolean lockFeedbackInput(String sessionkey, Boolean lock) { - final Session session = sessionRepository.findByKeyword(sessionkey); + final Room room = roomRepository.findByKeyword(sessionkey); final UserAuthentication user = userService.getCurrentUser(); if (!lock) { feedbackService.cleanFeedbackVotesBySessionKey(sessionkey, 0); } - session.setFeedbackLock(lock); - this.publisher.publishEvent(new LockFeedbackEvent(this, session)); - sessionRepository.save(session); + room.setFeedbackLock(lock); + this.publisher.publishEvent(new LockFeedbackEvent(this, room)); + roomRepository.save(room); - return session.getFeedbackLock(); + return room.getFeedbackLock(); } @Override @PreAuthorize("hasPermission(#sessionkey, 'session', 'owner')") public boolean flipFlashcards(String sessionkey, Boolean flip) { - final Session session = sessionRepository.findByKeyword(sessionkey); + final Room room = roomRepository.findByKeyword(sessionkey); final UserAuthentication user = userService.getCurrentUser(); - session.setFlipFlashcards(flip); - this.publisher.publishEvent(new FlipFlashcardsEvent(this, session)); - sessionRepository.save(session); + room.setFlipFlashcards(flip); + this.publisher.publishEvent(new FlipFlashcardsEvent(this, room)); + roomRepository.save(room); - return session.getFlipFlashcards(); + return room.getFlipFlashcards(); } - private void handleLogo(Session session) { - if (session.getPpLogo() != null) { - if (session.getPpLogo().startsWith("http")) { - final String base64ImageString = imageUtils.encodeImageToString(session.getPpLogo()); + private void handleLogo(Room room) { + if (room.getPpLogo() != null) { + if (room.getPpLogo().startsWith("http")) { + final String base64ImageString = imageUtils.encodeImageToString(room.getPpLogo()); if (base64ImageString == null) { throw new BadRequestException("Could not encode image."); } - session.setPpLogo(base64ImageString); + room.setPpLogo(base64ImageString); } // base64 adds offset to filesize, formula taken from: http://en.wikipedia.org/wiki/Base64#MIME - final int fileSize = (int) ((session.getPpLogo().length() - 814) / 1.37); + final int fileSize = (int) ((room.getPpLogo().length() - 814) / 1.37); if (fileSize > uploadFileSizeByte) { throw new PayloadTooLargeException("Could not save file. File is too large with " + fileSize + " Byte."); } diff --git a/src/main/java/de/thm/arsnova/services/UserSessionService.java b/src/main/java/de/thm/arsnova/services/UserRoomService.java similarity index 87% rename from src/main/java/de/thm/arsnova/services/UserSessionService.java rename to src/main/java/de/thm/arsnova/services/UserRoomService.java index 4cca18bde..972a075f8 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionService.java +++ b/src/main/java/de/thm/arsnova/services/UserRoomService.java @@ -18,14 +18,14 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import java.util.UUID; /** * The functionality the user-session service should provide. */ -public interface UserSessionService { +public interface UserRoomService { enum Role { STUDENT, @@ -35,8 +35,8 @@ public interface UserSessionService { void setUser(UserAuthentication user); UserAuthentication getUser(); - void setSession(Session session); - Session getSession(); + void setRoom(Room room); + Room getRoom(); void setSocketId(UUID socketId); UUID getSocketId(); @@ -44,6 +44,6 @@ public interface UserSessionService { void setRole(Role role); Role getRole(); - boolean inSession(); + boolean inRoom(); boolean isAuthenticated(); } diff --git a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java b/src/main/java/de/thm/arsnova/services/UserRoomServiceImpl.java similarity index 85% rename from src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java rename to src/main/java/de/thm/arsnova/services/UserRoomServiceImpl.java index 593f68152..847dbd2ac 100644 --- a/src/main/java/de/thm/arsnova/services/UserSessionServiceImpl.java +++ b/src/main/java/de/thm/arsnova/services/UserRoomServiceImpl.java @@ -18,7 +18,7 @@ package de.thm.arsnova.services; import de.thm.arsnova.entities.UserAuthentication; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Component; @@ -31,11 +31,11 @@ import java.util.UUID; */ @Component @Scope(value = "session", proxyMode = ScopedProxyMode.TARGET_CLASS) -public class UserSessionServiceImpl implements UserSessionService, Serializable { +public class UserRoomServiceImpl implements UserRoomService, Serializable { private static final long serialVersionUID = 1L; private UserAuthentication user; - private Session session; + private Room room; private UUID socketId; private Role role; @@ -51,13 +51,13 @@ public class UserSessionServiceImpl implements UserSessionService, Serializable } @Override - public void setSession(final Session s) { - session = s; + public void setRoom(final Room room) { + this.room = room; } @Override - public Session getSession() { - return session; + public Room getRoom() { + return room; } @Override @@ -71,9 +71,9 @@ public class UserSessionServiceImpl implements UserSessionService, Serializable } @Override - public boolean inSession() { + public boolean inRoom() { return isAuthenticated() - && getSession() != null; + && getRoom() != null; } @Override diff --git a/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java b/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java index 936d4486d..09560574f 100644 --- a/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java +++ b/src/main/java/de/thm/arsnova/services/score/ScoreCalculator.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.services.score; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.transport.ScoreStatistics; @@ -26,7 +26,7 @@ import de.thm.arsnova.entities.transport.ScoreStatistics; */ public interface ScoreCalculator { - ScoreStatistics getCourseProgress(Session session); + ScoreStatistics getCourseProgress(Room room); - ScoreStatistics getMyProgress(Session session, UserAuthentication user); + ScoreStatistics getMyProgress(Room room, UserAuthentication user); } diff --git a/src/main/java/de/thm/arsnova/services/score/ScoreCalculatorFactoryImpl.java b/src/main/java/de/thm/arsnova/services/score/ScoreCalculatorFactoryImpl.java index 44925d744..d6816d4ee 100644 --- a/src/main/java/de/thm/arsnova/services/score/ScoreCalculatorFactoryImpl.java +++ b/src/main/java/de/thm/arsnova/services/score/ScoreCalculatorFactoryImpl.java @@ -56,92 +56,92 @@ public class ScoreCalculatorFactoryImpl implements ArsnovaEventVisitor, ScoreCal @Override public void visit(DeleteCommentEvent deleteCommentEvent) { } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(NewQuestionEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(UnlockQuestionEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(UnlockQuestionsEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(LockQuestionEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(LockQuestionsEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(NewAnswerEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(DeleteAnswerEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(DeleteQuestionEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(DeleteAllQuestionsEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(DeleteAllQuestionsAnswersEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(DeleteAllPreparationAnswersEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(DeleteAllLectureAnswersEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } - @CacheEvict(value = "score", key = "#event.Session") + @CacheEvict(value = "score", key = "#event.Room") @Override public void visit(PiRoundResetEvent event) { - this.publisher.publishEvent(new ChangeScoreEvent(this, event.getSession())); + this.publisher.publishEvent(new ChangeScoreEvent(this, event.getRoom())); } @Override public void visit(NewFeedbackEvent newFeedbackEvent) { } @Override - public void visit(DeleteFeedbackForSessionsEvent deleteFeedbackEvent) { } + public void visit(DeleteFeedbackForRoomsEvent deleteFeedbackEvent) { } @Override - public void visit(StatusSessionEvent statusSessionEvent) { } + public void visit(StatusRoomEvent statusSessionEvent) { } @Override public void visit(ChangeScoreEvent changeLearningProgress) { } @@ -156,10 +156,10 @@ public class ScoreCalculatorFactoryImpl implements ArsnovaEventVisitor, ScoreCal public void visit(PiRoundCancelEvent piRoundCancelEvent) { } @Override - public void visit(NewSessionEvent event) { } + public void visit(NewRoomEvent event) { } @Override - public void visit(DeleteSessionEvent event) { } + public void visit(DeleteRoomEvent event) { } @Override public void setApplicationEventPublisher(ApplicationEventPublisher publisher) { diff --git a/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java b/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java index 0d7c877ce..bbe619e63 100644 --- a/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java +++ b/src/main/java/de/thm/arsnova/services/score/VariantScoreCalculator.java @@ -17,7 +17,7 @@ */ package de.thm.arsnova.services.score; -import de.thm.arsnova.entities.migration.v2.Session; +import de.thm.arsnova.entities.migration.v2.Room; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.transport.ScoreStatistics; import de.thm.arsnova.persistance.SessionStatisticsRepository; @@ -39,12 +39,12 @@ abstract class VariantScoreCalculator implements ScoreCalculator { } @Cacheable("score") - private Score loadProgress(final Session session) { - return sessionStatisticsRepository.getLearningProgress(session); + private Score loadProgress(final Room room) { + return sessionStatisticsRepository.getLearningProgress(room); } - private void refreshProgress(final Session session) { - this.courseScore = sessionStatisticsRepository.getLearningProgress(session); + private void refreshProgress(final Room room) { + this.courseScore = sessionStatisticsRepository.getLearningProgress(room); } public void setQuestionVariant(final String variant) { @@ -52,8 +52,8 @@ abstract class VariantScoreCalculator implements ScoreCalculator { } @Override - public ScoreStatistics getCourseProgress(Session session) { - this.refreshProgress(session); + public ScoreStatistics getCourseProgress(Room room) { + this.refreshProgress(room); this.filterVariant(); return this.createCourseProgress(); } @@ -61,8 +61,8 @@ abstract class VariantScoreCalculator implements ScoreCalculator { protected abstract ScoreStatistics createCourseProgress(); @Override - public ScoreStatistics getMyProgress(Session session, UserAuthentication user) { - this.refreshProgress(session); + public ScoreStatistics getMyProgress(Room room, UserAuthentication user) { + this.refreshProgress(room); this.filterVariant(); return this.createMyProgress(user); } diff --git a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java index bf4ef3f1c..acec042ab 100644 --- a/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java +++ b/src/main/java/de/thm/arsnova/websocket/ArsnovaSocketioServerImpl.java @@ -31,7 +31,7 @@ import com.corundumstudio.socketio.protocol.PacketType; import de.thm.arsnova.entities.UserAuthentication; import de.thm.arsnova.entities.migration.v2.Comment; import de.thm.arsnova.entities.ScoreOptions; -import de.thm.arsnova.entities.migration.v2.SessionFeature; +import de.thm.arsnova.entities.migration.v2.RoomFeature; import de.thm.arsnova.events.*; import de.thm.arsnova.exceptions.NoContentException; import de.thm.arsnova.exceptions.NotFoundException; @@ -39,11 +39,11 @@ import de.thm.arsnova.exceptions.UnauthorizedException; import de.thm.arsnova.services.CommentService; import de.thm.arsnova.services.FeedbackService; import de.thm.arsnova.services.ContentService; -import de.thm.arsnova.services.SessionService; +import de.thm.arsnova.services.RoomService; import de.thm.arsnova.services.UserService; import de.thm.arsnova.websocket.message.Feedback; import de.thm.arsnova.websocket.message.Content; -import de.thm.arsnova.websocket.message.Session; +import de.thm.arsnova.websocket.message.Room; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -80,7 +80,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova private UserService userService; @Autowired - private SessionService sessionService; + private RoomService roomService; @Autowired private ContentService contentService; @@ -150,9 +150,9 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova return; } final String sessionKey = userService.getSessionByUsername(u.getUsername()); - final de.thm.arsnova.entities.migration.v2.Session session = sessionService.getInternal(sessionKey, u); + final de.thm.arsnova.entities.migration.v2.Room room = roomService.getInternal(sessionKey, u); - if (session.getFeedbackLock()) { + if (room.getFeedbackLock()) { logger.debug("Feedback save blocked: {}", u, sessionKey, data.getValue()); } else { logger.debug("Feedback recieved: {}", u, sessionKey, data.getValue()); @@ -163,26 +163,26 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } }); - server.addEventListener("setSession", Session.class, new DataListener<Session>() { + server.addEventListener("setSession", Room.class, new DataListener<Room>() { @Override @Timed(name = "setSessionEvent.onData") - public void onData(final SocketIOClient client, final Session session, final AckRequest ackSender) { + public void onData(final SocketIOClient client, final Room room, final AckRequest ackSender) { final UserAuthentication u = userService.getUser2SocketId(client.getSessionId()); if (null == u) { - logger.info("Client {} requested to join session but is not mapped to a user", client.getSessionId()); + logger.info("Client {} requested to join room but is not mapped to a user", client.getSessionId()); return; } final String oldSessionKey = userService.getSessionByUsername(u.getUsername()); - if (null != session.getKeyword() && session.getKeyword().equals(oldSessionKey)) { + if (null != room.getKeyword() && room.getKeyword().equals(oldSessionKey)) { return; } - if (null != sessionService.join(session.getKeyword(), client.getSessionId())) { + if (null != roomService.join(room.getKeyword(), client.getSessionId())) { /* active user count has to be sent to the client since the broadcast is * not always sent as long as the polling solution is active simultaneously */ - reportActiveUserCountForSession(session.getKeyword()); - reportSessionDataToClient(session.getKeyword(), u, client); + reportActiveUserCountForSession(room.getKeyword()); + reportSessionDataToClient(room.getKeyword(), u, client); } if (null != oldSessionKey) { reportActiveUserCountForSession(oldSessionKey); @@ -231,11 +231,11 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova public void onData(SocketIOClient client, ScoreOptions scoreOptions, AckRequest ack) { final UserAuthentication user = userService.getUser2SocketId(client.getSessionId()); final String sessionKey = userService.getSessionByUsername(user.getUsername()); - final de.thm.arsnova.entities.migration.v2.Session session = sessionService.getInternal(sessionKey, user); - if (session.isCreator(user)) { - session.setLearningProgressOptions(scoreOptions); - sessionService.updateInternal(session, user); - broadcastInSession(session.getKeyword(), "learningProgressOptions", scoreOptions); + final de.thm.arsnova.entities.migration.v2.Room room = roomService.getInternal(sessionKey, user); + if (room.isCreator(user)) { + room.setLearningProgressOptions(scoreOptions); + roomService.updateInternal(room, user); + broadcastInSession(room.getKeyword(), "learningProgressOptions", scoreOptions); } } }); @@ -335,10 +335,10 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova this.useSSL = useSSL; } - public void reportDeletedFeedback(final UserAuthentication user, final Set<de.thm.arsnova.entities.migration.v2.Session> arsSessions) { + public void reportDeletedFeedback(final UserAuthentication user, final Set<de.thm.arsnova.entities.migration.v2.Room> arsRooms) { final List<String> keywords = new ArrayList<>(); - for (final de.thm.arsnova.entities.migration.v2.Session session : arsSessions) { - keywords.add(session.getKeyword()); + for (final de.thm.arsnova.entities.migration.v2.Room room : arsRooms) { + keywords.add(room.getKeyword()); } this.sendToUser(user, "feedbackReset", keywords); } @@ -372,21 +372,21 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova * relevant Socket.IO data, the client needs to know after joining a session. */ public void reportSessionDataToClient(final String sessionKey, final UserAuthentication user, final SocketIOClient client) { - final de.thm.arsnova.entities.migration.v2.Session session = sessionService.getInternal(sessionKey, user); - final SessionFeature features = sessionService.getFeatures(sessionKey); + final de.thm.arsnova.entities.migration.v2.Room room = roomService.getInternal(sessionKey, user); + final RoomFeature features = roomService.getFeatures(sessionKey); client.sendEvent("unansweredLecturerQuestions", contentService.getUnAnsweredLectureQuestionIds(sessionKey, user)); client.sendEvent("unansweredPreparationQuestions", contentService.getUnAnsweredPreparationQuestionIds(sessionKey, user)); client.sendEvent("countLectureQuestionAnswers", contentService.countLectureQuestionAnswersInternal(sessionKey)); client.sendEvent("countPreparationQuestionAnswers", contentService.countPreparationQuestionAnswersInternal(sessionKey)); - client.sendEvent("activeUserCountData", sessionService.activeUsers(sessionKey)); - client.sendEvent("learningProgressOptions", session.getLearningProgressOptions()); + client.sendEvent("activeUserCountData", roomService.activeUsers(sessionKey)); + client.sendEvent("learningProgressOptions", room.getLearningProgressOptions()); final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(sessionKey); client.sendEvent("feedbackData", fb.getValues()); if (features.isFlashcard() || features.isFlashcardFeature()) { client.sendEvent("countFlashcards", contentService.countFlashcardsForUserInternal(sessionKey)); - client.sendEvent("flipFlashcards", session.getFlipFlashcards()); + client.sendEvent("flipFlashcards", room.getFlipFlashcards()); } try { @@ -398,22 +398,22 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova } } - public void reportUpdatedFeedbackForSession(final de.thm.arsnova.entities.migration.v2.Session session) { - final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(session.getKeyword()); - broadcastInSession(session.getKeyword(), "feedbackData", fb.getValues()); + public void reportUpdatedFeedbackForSession(final de.thm.arsnova.entities.migration.v2.Room room) { + final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(room.getKeyword()); + broadcastInSession(room.getKeyword(), "feedbackData", fb.getValues()); try { - final long averageFeedback = feedbackService.calculateRoundedAverageFeedback(session.getKeyword()); - broadcastInSession(session.getKeyword(), "feedbackDataRoundedAverage", averageFeedback); + final long averageFeedback = feedbackService.calculateRoundedAverageFeedback(room.getKeyword()); + broadcastInSession(room.getKeyword(), "feedbackDataRoundedAverage", averageFeedback); } catch (final NoContentException e) { - broadcastInSession(session.getKeyword(), "feedbackDataRoundedAverage", null); + broadcastInSession(room.getKeyword(), "feedbackDataRoundedAverage", null); } } - public void reportFeedbackForUserInSession(final de.thm.arsnova.entities.migration.v2.Session session, final UserAuthentication user) { - final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(session.getKeyword()); + public void reportFeedbackForUserInSession(final de.thm.arsnova.entities.migration.v2.Room room, final UserAuthentication user) { + final de.thm.arsnova.entities.Feedback fb = feedbackService.getBySessionKey(room.getKeyword()); Long averageFeedback; try { - averageFeedback = feedbackService.calculateRoundedAverageFeedback(session.getKeyword()); + averageFeedback = feedbackService.calculateRoundedAverageFeedback(room.getKeyword()); } catch (final NoContentException e) { averageFeedback = null; } @@ -436,16 +436,16 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova broadcastInSession(sessionKey, "activeUserCountData", count); } - public void reportAnswersToLecturerQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Session session, final Content content) { - broadcastInSession(session.getKeyword(), "answersToLecQuestionAvail", content.get_id()); + public void reportAnswersToLecturerQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Room room, final Content content) { + broadcastInSession(room.getKeyword(), "answersToLecQuestionAvail", content.get_id()); } - public void reportAudienceQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Session session, final Comment audienceQuestion) { + public void reportAudienceQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Room room, final Comment audienceQuestion) { /* TODO role handling implementation, send this only to users with role lecturer */ - broadcastInSession(session.getKeyword(), "audQuestionAvail", audienceQuestion.getId()); + broadcastInSession(room.getKeyword(), "audQuestionAvail", audienceQuestion.getId()); } - public void reportLecturerQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Session session, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { + public void reportLecturerQuestionAvailable(final de.thm.arsnova.entities.migration.v2.Room room, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { List<Content> contents = new ArrayList<>(); for (de.thm.arsnova.entities.migration.v2.Content q : qs) { contents.add(new Content(q)); @@ -453,17 +453,17 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova /* TODO role handling implementation, send this only to users with role audience */ if (!qs.isEmpty()) { - broadcastInSession(session.getKeyword(), "lecQuestionAvail", contents.get(0).get_id()); // deprecated! + broadcastInSession(room.getKeyword(), "lecQuestionAvail", contents.get(0).get_id()); // deprecated! } - broadcastInSession(session.getKeyword(), "lecturerQuestionAvailable", contents); + broadcastInSession(room.getKeyword(), "lecturerQuestionAvailable", contents); } - public void reportLecturerQuestionsLocked(final de.thm.arsnova.entities.migration.v2.Session session, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { + public void reportLecturerQuestionsLocked(final de.thm.arsnova.entities.migration.v2.Room room, final List<de.thm.arsnova.entities.migration.v2.Content> qs) { List<Content> contents = new ArrayList<>(); for (de.thm.arsnova.entities.migration.v2.Content q : qs) { contents.add(new Content(q)); } - broadcastInSession(session.getKeyword(), "lecturerQuestionLocked", contents); + broadcastInSession(room.getKeyword(), "lecturerQuestionLocked", contents); } public void reportSessionStatus(final String sessionKey, final boolean active) { @@ -487,40 +487,40 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override public void visit(NewQuestionEvent event) { - this.reportLecturerQuestionAvailable(event.getSession(), Collections.singletonList(event.getQuestion())); + this.reportLecturerQuestionAvailable(event.getRoom(), Collections.singletonList(event.getQuestion())); } @Override public void visit(UnlockQuestionEvent event) { - this.reportLecturerQuestionAvailable(event.getSession(), Collections.singletonList(event.getQuestion())); + this.reportLecturerQuestionAvailable(event.getRoom(), Collections.singletonList(event.getQuestion())); } @Override public void visit(LockQuestionEvent event) { - this.reportLecturerQuestionsLocked(event.getSession(), Collections.singletonList(event.getQuestion())); + this.reportLecturerQuestionsLocked(event.getRoom(), Collections.singletonList(event.getQuestion())); } @Override public void visit(UnlockQuestionsEvent event) { - this.reportLecturerQuestionAvailable(event.getSession(), event.getQuestions()); + this.reportLecturerQuestionAvailable(event.getRoom(), event.getQuestions()); } @Override public void visit(LockQuestionsEvent event) { - this.reportLecturerQuestionsLocked(event.getSession(), event.getQuestions()); + this.reportLecturerQuestionsLocked(event.getRoom(), event.getQuestions()); } @Override public void visit(NewCommentEvent event) { - this.reportAudienceQuestionAvailable(event.getSession(), event.getQuestion()); + this.reportAudienceQuestionAvailable(event.getRoom(), event.getQuestion()); } @Async @Override @Timed(name = "visit.NewAnswerEvent") public void visit(NewAnswerEvent event) { - final String sessionKey = event.getSession().getKeyword(); - this.reportAnswersToLecturerQuestionAvailable(event.getSession(), new Content(event.getContent())); + final String sessionKey = event.getRoom().getKeyword(); + this.reportAnswersToLecturerQuestionAvailable(event.getRoom(), new Content(event.getContent())); broadcastInSession(sessionKey, "countQuestionAnswersByQuestionId", contentService.countAnswersAndAbstentionsInternal(event.getContent().getId())); broadcastInSession(sessionKey, "countLectureQuestionAnswers", contentService.countLectureQuestionAnswersInternal(sessionKey)); broadcastInSession(sessionKey, "countPreparationQuestionAnswers", contentService.countPreparationQuestionAnswersInternal(sessionKey)); @@ -538,8 +538,8 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override @Timed(name = "visit.DeleteAnswerEvent") public void visit(DeleteAnswerEvent event) { - final String sessionKey = event.getSession().getKeyword(); - this.reportAnswersToLecturerQuestionAvailable(event.getSession(), new Content(event.getQuestion())); + final String sessionKey = event.getRoom().getKeyword(); + this.reportAnswersToLecturerQuestionAvailable(event.getRoom(), new Content(event.getQuestion())); // We do not know which user's answer was deleted, so we can't update his 'unanswered' list of questions... broadcastInSession(sessionKey, "countLectureQuestionAnswers", contentService.countLectureQuestionAnswersInternal(sessionKey)); broadcastInSession(sessionKey, "countPreparationQuestionAnswers", contentService.countPreparationQuestionAnswersInternal(sessionKey)); @@ -549,7 +549,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override @Timed(name = "visit.PiRoundDelayedStartEvent") public void visit(PiRoundDelayedStartEvent event) { - final String sessionKey = event.getSession().getKeyword(); + final String sessionKey = event.getRoom().getKeyword(); broadcastInSession(sessionKey, "startDelayedPiRound", event.getPiRoundInformations()); } @@ -557,7 +557,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override @Timed(name = "visit.PiRoundEndEvent") public void visit(PiRoundEndEvent event) { - final String sessionKey = event.getSession().getKeyword(); + final String sessionKey = event.getRoom().getKeyword(); broadcastInSession(sessionKey, "endPiRound", event.getPiRoundEndInformations()); } @@ -565,25 +565,25 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override @Timed(name = "visit.PiRoundCancelEvent") public void visit(PiRoundCancelEvent event) { - final String sessionKey = event.getSession().getKeyword(); + final String sessionKey = event.getRoom().getKeyword(); broadcastInSession(sessionKey, "cancelPiRound", event.getQuestionId()); } @Override public void visit(PiRoundResetEvent event) { - final String sessionKey = event.getSession().getKeyword(); + final String sessionKey = event.getRoom().getKeyword(); broadcastInSession(sessionKey, "resetPiRound", event.getPiRoundResetInformations()); } @Override public void visit(LockVoteEvent event) { - final String sessionKey = event.getSession().getKeyword(); + final String sessionKey = event.getRoom().getKeyword(); broadcastInSession(sessionKey, "lockVote", event.getVotingAdmission()); } @Override public void visit(UnlockVoteEvent event) { - final String sessionKey = event.getSession().getKeyword(); + final String sessionKey = event.getRoom().getKeyword(); broadcastInSession(sessionKey, "unlockVote", event.getVotingAdmission()); } @@ -593,7 +593,7 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova for (de.thm.arsnova.entities.migration.v2.Content q : event.getQuestions()) { contents.add(new Content(q)); } - broadcastInSession(event.getSession().getKeyword(), "lockVotes", contents); + broadcastInSession(event.getRoom().getKeyword(), "lockVotes", contents); } @Override @@ -602,29 +602,29 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova for (de.thm.arsnova.entities.migration.v2.Content q : event.getQuestions()) { contents.add(new Content(q)); } - broadcastInSession(event.getSession().getKeyword(), "unlockVotes", contents); + broadcastInSession(event.getRoom().getKeyword(), "unlockVotes", contents); } @Override public void visit(FeatureChangeEvent event) { - final String sessionKey = event.getSession().getKeyword(); - final SessionFeature features = event.getSession().getFeatures(); + final String sessionKey = event.getRoom().getKeyword(); + final RoomFeature features = event.getRoom().getFeatures(); broadcastInSession(sessionKey, "featureChange", features); if (features.isFlashcard() || features.isFlashcardFeature()) { broadcastInSession(sessionKey, "countFlashcards", contentService.countFlashcardsForUserInternal(sessionKey)); - broadcastInSession(sessionKey, "flipFlashcards", event.getSession().getFlipFlashcards()); + broadcastInSession(sessionKey, "flipFlashcards", event.getRoom().getFlipFlashcards()); } } @Override public void visit(LockFeedbackEvent event) { - broadcastInSession(event.getSession().getKeyword(), "lockFeedback", event.getSession().getFeedbackLock()); + broadcastInSession(event.getRoom().getKeyword(), "lockFeedback", event.getRoom().getFeedbackLock()); } @Override public void visit(FlipFlashcardsEvent event) { - broadcastInSession(event.getSession().getKeyword(), "flipFlashcards", event.getSession().getFlipFlashcards()); + broadcastInSession(event.getRoom().getKeyword(), "flipFlashcards", event.getRoom().getFlipFlashcards()); } @Override @@ -665,30 +665,30 @@ public class ArsnovaSocketioServerImpl implements ArsnovaSocketioServer, Arsnova @Override public void visit(NewFeedbackEvent event) { - this.reportUpdatedFeedbackForSession(event.getSession()); + this.reportUpdatedFeedbackForSession(event.getRoom()); } @Override - public void visit(DeleteFeedbackForSessionsEvent event) { + public void visit(DeleteFeedbackForRoomsEvent event) { this.reportDeletedFeedback(event.getUser(), event.getSessions()); } @Override - public void visit(StatusSessionEvent event) { - this.reportSessionStatus(event.getSession().getKeyword(), event.getSession().isActive()); + public void visit(StatusRoomEvent event) { + this.reportSessionStatus(event.getRoom().getKeyword(), event.getRoom().isActive()); } @Override public void visit(ChangeScoreEvent event) { - broadcastInSession(event.getSession().getKeyword(), "learningProgressChange", null); + broadcastInSession(event.getRoom().getKeyword(), "learningProgressChange", null); } @Override - public void visit(NewSessionEvent event) { } + public void visit(NewRoomEvent event) { } @Override - public void visit(DeleteSessionEvent event) { } + public void visit(DeleteRoomEvent event) { } private void initializeSecurity() { Authentication auth = new AnonymousAuthenticationToken("websocket", "websocket", diff --git a/src/main/java/de/thm/arsnova/websocket/message/Session.java b/src/main/java/de/thm/arsnova/websocket/message/Room.java similarity index 97% rename from src/main/java/de/thm/arsnova/websocket/message/Session.java rename to src/main/java/de/thm/arsnova/websocket/message/Room.java index 8afccd951..efa221648 100644 --- a/src/main/java/de/thm/arsnova/websocket/message/Session.java +++ b/src/main/java/de/thm/arsnova/websocket/message/Room.java @@ -20,7 +20,7 @@ package de.thm.arsnova.websocket.message; /** * Represents a session. */ -public class Session { +public class Room { private String keyword; public String getKeyword() { diff --git a/src/main/resources/META-INF/aop.xml b/src/main/resources/META-INF/aop.xml index 6681890d4..5b05bbbe0 100644 --- a/src/main/resources/META-INF/aop.xml +++ b/src/main/resources/META-INF/aop.xml @@ -7,6 +7,6 @@ <aspects> <aspect name="de.thm.arsnova.aop.RangeAspect"/> - <aspect name="de.thm.arsnova.aop.UserSessionAspect"/> + <aspect name="de.thm.arsnova.aop.UserRoomAspect"/> </aspects> </aspectj> diff --git a/src/site/markdown/development/caching.md b/src/site/markdown/development/caching.md index eaa833021..59e0b7134 100644 --- a/src/site/markdown/development/caching.md +++ b/src/site/markdown/development/caching.md @@ -16,7 +16,7 @@ Caching should only be used with domain objects where the `hashCode` and `equals ```java @Cacheable(value = "notverycacheable", key = "#p0.concat('-').concat(#p1).concat('-').concat(#p2)") -public ResultObject notVeryCacheable(String sessionId, String questionVariant, String subject) { ... } +public ResultObject notVeryCacheable(String roomId, String questionVariant, String subject) { ... } ``` Therefore, you should always work with domain objects like `Session`, `Content`, or even your own, newly defined objects: diff --git a/src/test/java/de/thm/arsnova/config/TestPersistanceConfig.java b/src/test/java/de/thm/arsnova/config/TestPersistanceConfig.java index 4801a8548..b58d944f0 100644 --- a/src/test/java/de/thm/arsnova/config/TestPersistanceConfig.java +++ b/src/test/java/de/thm/arsnova/config/TestPersistanceConfig.java @@ -20,8 +20,8 @@ public class TestPersistanceConfig { } @Bean - public SessionRepository sessionRepository() { - return Mockito.mock(SessionRepository.class); + public RoomRepository sessionRepository() { + return Mockito.mock(RoomRepository.class); } @Bean diff --git a/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java b/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java index 7fff5e143..41fc67bf7 100644 --- a/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java +++ b/src/test/java/de/thm/arsnova/services/DefaultEntityServiceImplTest.java @@ -5,8 +5,8 @@ import de.thm.arsnova.config.AppConfig; import de.thm.arsnova.config.TestAppConfig; import de.thm.arsnova.config.TestPersistanceConfig; import de.thm.arsnova.config.TestSecurityConfig; -import de.thm.arsnova.entities.migration.v2.Session; -import de.thm.arsnova.persistance.SessionRepository; +import de.thm.arsnova.entities.migration.v2.Room; +import de.thm.arsnova.persistance.RoomRepository; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; @@ -39,72 +39,72 @@ public class DefaultEntityServiceImplTest { private MappingJackson2HttpMessageConverter jackson2HttpMessageConverter; @Autowired - private SessionRepository sessionRepository; + private RoomRepository roomRepository; @Test @WithMockUser(username="TestUser") public void testPatch() throws IOException { final ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper(); - final DefaultEntityServiceImpl<Session> entityService = new DefaultEntityServiceImpl<>(Session.class, sessionRepository, objectMapper); + final DefaultEntityServiceImpl<Room> entityService = new DefaultEntityServiceImpl<>(Room.class, roomRepository, objectMapper); - when(sessionRepository.save(any(Session.class))).then(returnsFirstArg()); + when(roomRepository.save(any(Room.class))).then(returnsFirstArg()); final String originalId = "d8833f0d78964a9487ded02ba2dfbbad"; - final String originalName = "Test Session"; + final String originalName = "Test Room"; final String originalCreator = "TestUser"; final boolean originalActive = false; - final Session session = new Session(); - session.setId(originalId); - session.setName(originalName); - session.setActive(originalActive); - session.setCreator(originalCreator); + final Room room = new Room(); + room.setId(originalId); + room.setName(originalName); + room.setActive(originalActive); + room.setCreator(originalCreator); - final String patchedName = "Patched Session"; + final String patchedName = "Patched Room"; final boolean patchedActive = true; final Map<String, Object> patchedValues = new HashMap<>(); patchedValues.put("name", patchedName); patchedValues.put("active", patchedActive); patchedValues.put("creator", "Should not be changeable."); - entityService.patch(session, patchedValues); + entityService.patch(room, patchedValues); - assertEquals(originalId, session.getId()); - assertEquals(patchedName, session.getName()); - assertEquals(patchedActive, session.isActive()); - assertEquals(originalCreator, session.getCreator()); + assertEquals(originalId, room.getId()); + assertEquals(patchedName, room.getName()); + assertEquals(patchedActive, room.isActive()); + assertEquals(originalCreator, room.getCreator()); } @Test @WithMockUser(username="TestUser") public void testPatchWithList() throws IOException { final ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper(); - final DefaultEntityServiceImpl<Session> entityService = new DefaultEntityServiceImpl<>(Session.class, sessionRepository, objectMapper); + final DefaultEntityServiceImpl<Room> entityService = new DefaultEntityServiceImpl<>(Room.class, roomRepository, objectMapper); - when(sessionRepository.save(any(Session.class))).then(returnsFirstArg()); + when(roomRepository.save(any(Room.class))).then(returnsFirstArg()); - List<Session> sessions = new ArrayList<>(); + List<Room> sessions = new ArrayList<>(); final String originalId1 = "d8833f0d78964a9487ded02ba2dfbbad"; - final String originalName1 = "Test Session 1"; + final String originalName1 = "Test Room 1"; final String originalCreator1 = "TestUser"; final boolean originalActive1 = false; - final Session session1 = new Session(); - session1.setId(originalId1); - session1.setName(originalName1); - session1.setActive(originalActive1); - session1.setCreator(originalCreator1); - sessions.add(session1); + final Room room1 = new Room(); + room1.setId(originalId1); + room1.setName(originalName1); + room1.setActive(originalActive1); + room1.setCreator(originalCreator1); + sessions.add(room1); final String originalId2 = "3dc8cbff05da49d5980f6c001a6ea867"; - final String originalName2 = "Test Session 2"; + final String originalName2 = "Test Room 2"; final String originalCreator2 = "TestUser"; final boolean originalActive2 = false; - final Session session2 = new Session(); - session2.setId(originalId2); - session2.setName(originalName2); - session2.setActive(originalActive2); - session2.setCreator(originalCreator2); - sessions.add(session2); - - final String patchedName = "Patched Session"; + final Room room2 = new Room(); + room2.setId(originalId2); + room2.setName(originalName2); + room2.setActive(originalActive2); + room2.setCreator(originalCreator2); + sessions.add(room2); + + final String patchedName = "Patched Room"; final boolean patchedActive = true; final Map<String, Object> patchedValues = new HashMap<>(); patchedValues.put("name", patchedName); @@ -113,13 +113,13 @@ public class DefaultEntityServiceImplTest { entityService.patch(sessions, patchedValues); - assertEquals(originalId1, session1.getId()); - assertEquals(patchedName, session1.getName()); - assertEquals(patchedActive, session1.isActive()); - assertEquals(originalCreator1, session1.getCreator()); - assertEquals(originalId2, session2.getId()); - assertEquals(patchedName, session2.getName()); - assertEquals(patchedActive, session2.isActive()); - assertEquals(originalCreator2, session2.getCreator()); + assertEquals(originalId1, room1.getId()); + assertEquals(patchedName, room1.getName()); + assertEquals(patchedActive, room1.isActive()); + assertEquals(originalCreator1, room1.getCreator()); + assertEquals(originalId2, room2.getId()); + assertEquals(patchedName, room2.getName()); + assertEquals(patchedActive, room2.isActive()); + assertEquals(originalCreator2, room2.getCreator()); } } diff --git a/src/test/java/de/thm/arsnova/services/StubUserService.java b/src/test/java/de/thm/arsnova/services/StubUserService.java index bc87ad902..c2b8ec157 100644 --- a/src/test/java/de/thm/arsnova/services/StubUserService.java +++ b/src/test/java/de/thm/arsnova/services/StubUserService.java @@ -51,7 +51,7 @@ public class StubUserService extends UserServiceImpl { return stubUser; } - public void setRole(UserSessionService.Role role) { + public void setRole(UserRoomService.Role role) { stubUser.setRole(role); } } -- GitLab