diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java index 0e68a0ef8589217997c23e49ad69d78213c85843..92d64fb2be6839c311db8a2e28821150f1cfc682 100644 --- a/src/main/java/de/thm/arsnova/controller/SessionController.java +++ b/src/main/java/de/thm/arsnova/controller/SessionController.java @@ -193,10 +193,10 @@ public class SessionController extends AbstractController { @RequestMapping(value = "/publicpool", method = RequestMethod.GET) - public final Map<String, ArrayList<Session>> getPublicPoolSessions( + public final List<Session> getPublicPoolSessions( final HttpServletResponse response ) { - Map<String, ArrayList<Session>> sessions; + List<Session> sessions; sessions = sessionService.getPublicPoolSessions(); if (sessions == null || sessions.isEmpty()) { diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 158a75d6e7c9683a408c3979ba3b903d17ad3388..7a5e8b46b3e09c6e660bde458c2724a3d05a5c65 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -130,22 +130,22 @@ public class CouchDBDao implements IDatabaseDao { } @Override - public final Map<String, ArrayList<Session>> getPublicPoolSessions() { - Map<String, ArrayList<Session>> sessionMap = new HashMap<String, ArrayList<Session>>(); + public final List<Session> getPublicPoolSessions() { final NovaView view = new NovaView("session/public_pool_by_id"); - view.setGroup(true); + final ViewResults sessions = getDatabase().view(view); - //final List<Session> result = new ArrayList<Session>(); - Collection<Session> result = null; - for (Document d : sessions.getResults()) { - final JSONArray jsonSessions = d.getJSONObject().getJSONArray("value"); - - sessionMap.put( - d.getJSONObject().getString("key"), - new ArrayList(JSONArray.toCollection(jsonSessions, Session.class))); + 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 sessionMap; + return result; } @Override diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index bfb1502a7f560a7688b5ea07a0aea6e73ca3f5ca..b0cada556de97f3d059ad74ed7a0d9be2a7f2173 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -42,7 +42,7 @@ public interface IDatabaseDao { List<Session> getMySessions(User user); - Map<String, ArrayList<Session>> getPublicPoolSessions(); + 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 1cf5b978bfba5ce679cbea9aabac1706c7bdaa99..37672066a5bd81c2d69a9eb0716b500546cf66cd 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -40,7 +40,7 @@ public interface ISessionService { List<Session> getMySessions(); - Map<String, ArrayList<Session>> getPublicPoolSessions(); + 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 1f87b7db8a20594162bcf1f64373705b8cbb75d3..445abe20873fc0927da6fbb52478dbf595d4ed2b 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -158,7 +158,7 @@ public class SessionService implements ISessionService { @Override @PreAuthorize("isAuthenticated()") - public final Map<String, ArrayList<Session>> getPublicPoolSessions() { + public final List<Session> getPublicPoolSessions() { return databaseDao.getPublicPoolSessions(); } diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index 08349c91922308d49e64b7391342d0dee955fdaf..eec8823cd9f5b9dd486ac34cd3684ff6df72214d 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -195,7 +195,7 @@ public class StubDatabaseDao implements IDatabaseDao { } @Override - public Map<String, ArrayList<Session>> getPublicPoolSessions() { + public List<Session> getPublicPoolSessions() { // TODO Auto-generated method stub return null; }