From 492494ae430451fe6293522abf63c44810056c01 Mon Sep 17 00:00:00 2001 From: Julian Hochstetter <julian.hochstetter@mni.thm.de> Date: Tue, 16 Oct 2012 21:03:17 +0200 Subject: [PATCH] Task #4030: countSkillQuestions --- .../java/de/thm/arsnova/SessionController.java | 5 +++++ .../java/de/thm/arsnova/dao/CouchDBDao.java | 17 +++++++++++++++++ .../java/de/thm/arsnova/dao/IDatabaseDao.java | 1 + .../thm/arsnova/services/ISessionService.java | 1 + .../de/thm/arsnova/services/SessionService.java | 5 +++++ 5 files changed, 29 insertions(+) diff --git a/src/main/java/de/thm/arsnova/SessionController.java b/src/main/java/de/thm/arsnova/SessionController.java index 11383ca6..7f16f4fc 100644 --- a/src/main/java/de/thm/arsnova/SessionController.java +++ b/src/main/java/de/thm/arsnova/SessionController.java @@ -121,6 +121,11 @@ public class SessionController { return questions; } + @RequestMapping(value="/getSkillQuestionCount/{sessionkey}", method=RequestMethod.GET) + @ResponseBody + public int getSkillQuestionCount(@PathVariable String sessionkey, HttpServletResponse response) { + return sessionService.getSkillQuestionCount(sessionkey); + } @RequestMapping(value="/socketurl", method=RequestMethod.GET) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index da671be6..75d41c1c 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -224,6 +224,23 @@ public class CouchDBDao implements IDatabaseDao { } } + @Override + public int getSkillQuestionCount(String sessionkey) { + try { + View view = new View("skill_question/count_by_session"); + view.setKey(URLEncoder.encode("\"" + sessionkey + "\"", "UTF-8")); + ViewResults results = this.getDatabase().view(view); + + if (results.getJSONArray("rows").optJSONObject(0) == null) { + return 0; + } + + return results.getJSONArray("rows").optJSONObject(0).optInt("value"); + + } catch (UnsupportedEncodingException e) { + return 0; + } + } @Override public Session getSessionFromKeyword(String keyword) { diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 8cd6eb1e..27fc1f58 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -38,4 +38,5 @@ public interface IDatabaseDao { public boolean saveQuestion(Session session, Question question); List<Question> getSkillQuestions(String session, String sort); + public int getSkillQuestionCount(String sessionkey); } \ No newline at end of file diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index d56b3051..73de3b58 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -46,4 +46,5 @@ public interface ISessionService { public List<Session> getMySessions(String username); public boolean saveQuestion(Question question); public List<Question> getSkillQuestions(String sessionkey, String sort); + public int getSkillQuestionCount(String sessionkey); } \ No newline at end of file diff --git a/src/main/java/de/thm/arsnova/services/SessionService.java b/src/main/java/de/thm/arsnova/services/SessionService.java index 4dfaf0c2..72189c5c 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -81,6 +81,11 @@ public class SessionService implements ISessionService { return databaseDao.getSkillQuestions(sessionkey, sort); } + @Override + public int getSkillQuestionCount(String sessionkey) { + return databaseDao.getSkillQuestionCount(sessionkey); + } + @Override public Session saveSession(Session session) { return databaseDao.saveSession(session); -- GitLab