Skip to content
Snippets Groups Projects
Commit a3511aed authored by Julian Hochstetter's avatar Julian Hochstetter
Browse files

Task #4026: getMySessions server implementation

parent 3c37346b
Branches
Tags
No related merge requests found
......@@ -18,6 +18,7 @@
*/
package de.thm.arsnova;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletResponse;
......@@ -91,6 +92,22 @@ public class SessionController {
return null;
}
@RequestMapping(value="/mySessions", method=RequestMethod.GET)
@ResponseBody
public List<Session> getMySession(HttpServletResponse response) {
String username = userService.getUser(SecurityContextHolder.getContext().getAuthentication()).getUsername();
if(username == null) {
response.setStatus(HttpStatus.NOT_FOUND.value());
return null;
}
List<Session> sessions = sessionService.getMySessions(username);
if (sessions == null || sessions.isEmpty()) {
response.setStatus(HttpStatus.NOT_FOUND.value());
return null;
}
return sessions;
}
@RequestMapping(value="/socketurl", method=RequestMethod.GET)
@ResponseBody
public String getSocketUrl() {
......
......@@ -158,6 +158,25 @@ public class CouchDBDao implements IDatabaseDao {
return null;
}
@Override
public List<Session> getMySessions(String username) {
try {
View view = new View("session/by_creator");
view.setStartKey("[" + URLEncoder.encode("\"" + username + "\"", "UTF-8") + "]");
view.setEndKey("[" + URLEncoder.encode("\"" + username + "\",{}", "UTF-8") + "]");
ViewResults sessions = this.getDatabase().view(view);
List<Session> result = new ArrayList<Session>();
for (Document d : sessions.getResults()) {
result.add((Session) JSONObject.toBean(d.getJSONObject().getJSONObject("value"), Session.class));
}
return result;
} catch (UnsupportedEncodingException e) {
return null;
}
}
@Override
public Session getSessionFromKeyword(String keyword) {
try {
......
......@@ -19,6 +19,8 @@
package de.thm.arsnova.dao;
import java.util.List;
import de.thm.arsnova.entities.Feedback;
import de.thm.arsnova.entities.Session;
import de.thm.arsnova.entities.User;
......@@ -28,6 +30,7 @@ public interface IDatabaseDao {
public void cleanFeedbackVotes(int cleanupFeedbackDelay);
public Session getSessionFromKeyword(String keyword);
public Session getSession(String keyword);
public List<Session> getMySessions(String username);
public Session saveSession(Session session);
public Feedback getFeedback(String keyword);
public boolean saveFeedback(String keyword, int value, User user);
......
......@@ -44,5 +44,6 @@ public interface ISessionService {
public List<String> getUsersInSession(String keyword);
public void broadcastFeedbackChanges(Map<String, Set<String>> affectedUsers, Set<String> allAffectedSessions);
public List<Session> getMySessions(String username);
public boolean saveQuestion(Question question);
}
\ No newline at end of file
......@@ -71,6 +71,10 @@ public class SessionService implements ISessionService {
public Session getSession(String keyword) {
return databaseDao.getSession(keyword);
}
@Override
public List<Session> getMySessions(String username) {
return databaseDao.getMySessions(username);
}
@Override
public Session saveSession(Session session) {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment