From 7f428fa15d77643b89b3734a55205011484df71b Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <daniel.gerhardt@mni.thm.de> Date: Wed, 22 Jan 2014 13:58:41 +0100 Subject: [PATCH] Filter total answer count for questions by PI round --- src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 8 +++++--- src/main/java/de/thm/arsnova/dao/IDatabaseDao.java | 2 +- .../java/de/thm/arsnova/services/QuestionService.java | 5 +++-- src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 86cd5271..23b79018 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 2a99de4f..b7f153c1 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 24d67b2e..b8f795de 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 f8a9d63d..8e354540 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; } -- GitLab