From cb85972a6d675983fc46715ce41a65da6364ec1f Mon Sep 17 00:00:00 2001
From: Felix Schmidt <felix.schmidt@mni.thm.de>
Date: Thu, 15 Jan 2015 21:39:13 +0100
Subject: [PATCH] Updated methods to get the public pool session infos by
 creator.

---
 .../arsnova/controller/SessionController.java | 26 +++++++++++++------
 .../java/de/thm/arsnova/dao/CouchDBDao.java   |  6 +++++
 .../java/de/thm/arsnova/dao/IDatabaseDao.java |  2 ++
 .../thm/arsnova/services/ISessionService.java |  4 +--
 .../thm/arsnova/services/SessionService.java  |  4 +--
 .../de/thm/arsnova/dao/StubDatabaseDao.java   |  6 +++++
 6 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/controller/SessionController.java b/src/main/java/de/thm/arsnova/controller/SessionController.java
index c0bb0e8d..5414992c 100644
--- a/src/main/java/de/thm/arsnova/controller/SessionController.java
+++ b/src/main/java/de/thm/arsnova/controller/SessionController.java
@@ -190,19 +190,29 @@ public class SessionController extends AbstractController {
 		}
 		return sessions;
 	}
-	
 
+	@RequestMapping(value = "/publicpool", method = RequestMethod.GET, params = "statusonly=true")
+	public final List<SessionInfo> getMyPublicPoolSessions(
+			final HttpServletResponse response
+			) {
+		System.out.println("getMyPublicPoolSessions()");
+		List<SessionInfo> sessions = sessionService.getMyPublicPoolSessionsInfo();
+			
+		if (sessions == null || sessions.isEmpty()) {
+			response.setStatus(HttpServletResponse.SC_NO_CONTENT);
+			return null;
+		}
+
+		return sessions;
+	}
+	
 	@RequestMapping(value = "/publicpool", method = RequestMethod.GET)
 	public final List<Session> getPublicPoolSessions(
-			@RequestParam(value = "myonly", defaultValue = "false") final boolean myOnly,
 			final HttpServletResponse response
 			) {
-		List<Session> sessions;
-		if (!myOnly)
-			sessions = sessionService.getPublicPoolSessions();
-		else
-			sessions = sessionService.getMyPublicPoolSessions();
-
+		System.out.println("getPublicPoolSessions()");
+		List<Session> sessions = sessionService.getPublicPoolSessions();
+		
 		if (sessions == null || sessions.isEmpty()) {
 			response.setStatus(HttpServletResponse.SC_NO_CONTENT);
 			return null;
diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
index 25e78b55..136bb369 100644
--- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
+++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java
@@ -170,6 +170,12 @@ public class CouchDBDao implements IDatabaseDao {
 		return result;
 	}
 	
+	@Override
+	public final List<SessionInfo> getMyPublicPoolSessionsInfo(final User user) {
+		final List<Session> sessions = this.getMyPublicPoolSessions(user);
+		return getInfosForSessions(sessions);
+	}
+	
 	@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 37081dc9..9ad912d4 100644
--- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
+++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java
@@ -178,6 +178,8 @@ public interface IDatabaseDao {
 
 	List<SessionInfo> getMySessionsInfo(User user);
 
+	List<SessionInfo> getMyPublicPoolSessionsInfo(final User user);
+	
 	List<SessionInfo> getMyVisitedSessionsInfo(User currentUser);
 
 	void deleteAllPreparationAnswers(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 108a8ff9..566c669a 100644
--- a/src/main/java/de/thm/arsnova/services/ISessionService.java
+++ b/src/main/java/de/thm/arsnova/services/ISessionService.java
@@ -41,8 +41,6 @@ public interface ISessionService {
 	List<Session> getMySessions();
 	
 	List<Session> getPublicPoolSessions();
-	
-	List<Session> getMyPublicPoolSessions();
 
 	List<Session> getMyVisitedSessions();
 
@@ -63,6 +61,8 @@ public interface ISessionService {
 	SimpleEntry<Integer, Integer> getMyLearningProgress(String sessionkey);
 
 	List<SessionInfo> getMySessionsInfo();
+	
+	List<SessionInfo> getMyPublicPoolSessionsInfo();
 
 	List<SessionInfo> getMyVisitedSessionsInfo();
 }
diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java
index dd02f530..f69d718b 100644
--- a/src/main/java/de/thm/arsnova/services/SessionService.java
+++ b/src/main/java/de/thm/arsnova/services/SessionService.java
@@ -175,8 +175,8 @@ public class SessionService implements ISessionService {
 	
 	@Override
 	@PreAuthorize("isAuthenticated()")
-	public final List<Session> getMyPublicPoolSessions() {
-		return databaseDao.getMyPublicPoolSessions(userService.getCurrentUser());
+	public final List<SessionInfo> getMyPublicPoolSessionsInfo() {
+		return databaseDao.getMyPublicPoolSessionsInfo(userService.getCurrentUser());
 	}
 
 	@Override
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index cd89e6a5..34a833e2 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -205,6 +205,12 @@ public class StubDatabaseDao implements IDatabaseDao {
 		// TODO Auto-generated method stub
 		return null;
 	}
+	
+	@Override
+	public List<SessionInfo> getMyPublicPoolSessionsInfo(final User user) {
+		// TODO Auto-generated method stub
+		return null;
+	}
 
 	@Override
 	public LoggedIn registerAsOnlineUser(User u, Session s) {
-- 
GitLab