diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 86cd527193578d1c202565f1b667988125a41dd4..23b79018890746e8693701bd71388e869f657878 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -560,10 +560,12 @@ public class CouchDBDao implements IDatabaseDao { } @Override - public final int getAnswerCount(final String questionId) { - NovaView view = new NovaView("skill_question/count_answers_by_question"); - view.setKey(questionId); + public final int getAnswerCount(final Question question, final int piRound) { + LOGGER.debug("coudbdao: getAnswerCount, piRound: ", piRound); + NovaView view = new NovaView("skill_question/count_total_answers_by_question_and_piround"); view.setGroup(true); + view.setStartKey(question.get_id(), String.valueOf(piRound)); + view.setEndKey(question.get_id(), String.valueOf(piRound), "{}"); ViewResults results = this.getDatabase().view(view); if (results.getResults().size() == 0) { return 0; diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 2a99de4f68b2811d3fa787b91e6f530c613c51da..b7f153c1f8487c8b9d2fa99fc4e0466a3f514b61 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -68,7 +68,7 @@ public interface IDatabaseDao { List<Answer> getAnswers(String questionId, int piRound); - int getAnswerCount(String questionId); + int getAnswerCount(Question question, int piRound); List<Answer> getFreetextAnswers(String questionId); diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java index 24d67b2e935cbdb302fc3845f087e25b38e925d5..b8f795dee0fc3b326f3b613e9c89778ee79563b6 100644 --- a/src/main/java/de/thm/arsnova/services/QuestionService.java +++ b/src/main/java/de/thm/arsnova/services/QuestionService.java @@ -236,11 +236,12 @@ public class QuestionService implements IQuestionService { return getAnswers(questionId, question.getPiRound()); } - /* TODO add implementation for piRound */ @Override @Authenticated public int getAnswerCount(String questionId) { - return databaseDao.getAnswerCount(questionId); + Question question = getQuestion(questionId); + + return databaseDao.getAnswerCount(question, question.getPiRound()); } @Override diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index f8a9d63d1b59ccaeeaee74d6fe03677f67a864c2..8e354540801597bbedda9e3cf505295dcf207b4f 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -217,7 +217,7 @@ public class StubDatabaseDao implements IDatabaseDao { } @Override - public int getAnswerCount(String questionId) { + public int getAnswerCount(Question question, int piRound) { // TODO Auto-generated method stub return 0; }