diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index e828b24e976361d87258a6ec189715b3799677ff..9b647c513882f3cf9a7fd02f0ff18862d1a7136b 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -189,6 +189,22 @@ public class SessionController extends AbstractController { } return sessions; } + + + @RequestMapping(value = "/public_pool", method = RequestMethod.GET) + public final List<Session> getPublicPoolSessions( + final HttpServletResponse response + ) { + List<Session> sessions; + sessions = sessionService.getPublicPoolSessions(); + + if (sessions == null || sessions.isEmpty()) { + response.setStatus(HttpServletResponse.SC_NO_CONTENT); + return null; + } + + return sessions; + } @RequestMapping(value = "/{sessionkey}/lock", method = RequestMethod.POST) public final Session lockSession( diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 5ccceb2850f382d1e75b2318f71bccb60b85ef34..032e013ebc67acb5014b0fb072ea480a398c44f2 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -128,7 +128,26 @@ public class CouchDBDao implements IDatabaseDao { } return result; } + + @Override + public final List<Session> getPublicPoolSessions() { + final NovaView view = new NovaView("session/public_pool_by_id"); + + final ViewResults sessions = getDatabase().view(view); + final List<Session> result = new ArrayList<Session>(); + + for (final Document d : sessions.getResults()) { + final Session session = (Session) JSONObject.toBean( + d.getJSONObject().getJSONObject("value"), + Session.class + ); + //session.set_id(d.getId()); + result.add(session); + } + return result; + } + @Override public final List<SessionInfo> getMySessionsInfo(final User user) { final List<Session> sessions = this.getMySessions(user); diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 7a1c205f9d70e80088fa542a091fc812876f9634..54083b3b21bbd7557910efe54b823fa767f0494e 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -39,6 +39,8 @@ public interface IDatabaseDao { Session getSession(String keyword); List<Session> getMySessions(User user); + + List<Session> getPublicPoolSessions(); Session saveSession(User user, Session session); diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index a215b57a24020c7c989db22782ed0171e9923871..700e36786f463abdeff7d271da0808f01281d898 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -37,6 +37,8 @@ public interface ISessionService { String generateKeyword(); List<Session> getMySessions(); + + List<Session> getPublicPoolSessions(); List<Session> getMyVisitedSessions(); diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index f51a8016e58741e4fe8d6e3606af2877abe1acae..f3ee451aebdfce99444b5bd582c2ceb1b5051026 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -153,6 +153,12 @@ public class SessionService implements ISessionService { public final List<Session> getMySessions() { return databaseDao.getMySessions(userService.getCurrentUser()); } + + @Override + @PreAuthorize("isAuthenticated()") + public final List<Session> getPublicPoolSessions() { + return databaseDao.getPublicPoolSessions(); + } @Override @PreAuthorize("isAuthenticated()") diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index 956d495664e41c99b1f2ad73b1b983cd463d0468..eec8823cd9f5b9dd486ac34cd3684ff6df72214d 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -193,6 +193,12 @@ public class StubDatabaseDao implements IDatabaseDao { // TODO Auto-generated method stub return null; } + + @Override + public List<Session> getPublicPoolSessions() { + // TODO Auto-generated method stub + return null; + } @Override public LoggedIn registerAsOnlineUser(User u, Session s) {