From 76d1dba3f0d5d87b1c847e169844d552406d68b4 Mon Sep 17 00:00:00 2001 From: Daniel Knapp <daniel.knapp@thm.de> Date: Wed, 23 Jan 2013 16:33:19 +0100 Subject: [PATCH] response the recently created question --- pom.xml | 6 +++--- .../arsnova/controller/QuestionController.java | 16 ++++++++++------ src/main/java/de/thm/arsnova/dao/CouchDBDao.java | 8 ++++---- .../java/de/thm/arsnova/dao/IDatabaseDao.java | 4 +++- .../thm/arsnova/services/IQuestionService.java | 2 +- .../de/thm/arsnova/services/QuestionService.java | 10 ++++++++-- 6 files changed, 29 insertions(+), 17 deletions(-) diff --git a/pom.xml b/pom.xml index 97573865..a44ed123 100644 --- a/pom.xml +++ b/pom.xml @@ -330,10 +330,10 @@ <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.6.5.v20120716</version> - <!-- <configuration> <scanIntervalSeconds>5</scanIntervalSeconds> <webApp> + <configuration> <scanIntervalSeconds>1</scanIntervalSeconds> <webApp> <contextPath>/</contextPath> <baseResource implementation="org.eclipse.jetty.util.resource.ResourceCollection"> - <resourcesAsCSV>src/main/webapp,../arsnova-js/src/main/webapp,../arsnova-legacy-js/src/main/webapp,../dojo-war/src/main/webapp</resourcesAsCSV> - </baseResource> </webApp> </configuration> --> + <resourcesAsCSV>src/main/webapp,../arsnova-js/src/main/webapp,../arsnova-legacy-js/src/main/webapp</resourcesAsCSV> + </baseResource> </webApp> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> diff --git a/src/main/java/de/thm/arsnova/controller/QuestionController.java b/src/main/java/de/thm/arsnova/controller/QuestionController.java index f34b9b77..d6f70983 100644 --- a/src/main/java/de/thm/arsnova/controller/QuestionController.java +++ b/src/main/java/de/thm/arsnova/controller/QuestionController.java @@ -63,25 +63,29 @@ public class QuestionController extends AbstractController { return null; } - @RequestMapping(value = "/session/{sessionkey}/question", method = RequestMethod.POST) + @RequestMapping( + value = "/session/{sessionkey}/question", + method = RequestMethod.POST + ) @ResponseBody - public final void postQuestion( + public final Question postQuestion( @PathVariable final String sessionkey, @RequestBody final Question question, final HttpServletResponse response ) { if (!sessionkey.equals(question.getSession())) { response.setStatus(HttpStatus.PRECONDITION_FAILED.value()); - return; + return null; } - if (questionService.saveQuestion(question)) { + if (questionService.saveQuestion(question) != null) { response.setStatus(HttpStatus.CREATED.value()); - return; + return question; } response.setStatus(HttpStatus.BAD_REQUEST.value()); - return; + + return null; } @RequestMapping( diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 47ea04ac..82176db0 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -519,7 +519,7 @@ public class CouchDBDao implements IDatabaseDao { } @Override - public final boolean saveQuestion(final Session session, final Question question) { + public final Document saveQuestion(final Session session, final Question question) { Document q = new Document(); q.put("type", "skill_question"); q.put("questionType", question.getQuestionType()); @@ -533,12 +533,12 @@ public class CouchDBDao implements IDatabaseDao { q.put("possibleAnswers", question.getPossibleAnswers()); q.put("noCorrect", question.isNoCorrect()); try { - database.saveDocument(q); - return true; + database.saveDocument(q, null); + return q; } catch (IOException e) { LOGGER.error("Could not save question {}", question); } - return false; + return null; } @Override diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index 140b4083..78e7aa90 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -22,6 +22,8 @@ package de.thm.arsnova.dao; import java.io.IOException; import java.util.List; +import com.fourspaces.couchdb.Document; + import de.thm.arsnova.entities.Answer; import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.FoodVote; @@ -48,7 +50,7 @@ public interface IDatabaseDao { boolean sessionKeyAvailable(String keyword); - boolean saveQuestion(Session session, Question question); + Document saveQuestion(Session session, Question question); boolean saveQuestion(Session session, InterposedQuestion question); diff --git a/src/main/java/de/thm/arsnova/services/IQuestionService.java b/src/main/java/de/thm/arsnova/services/IQuestionService.java index 618ba018..3bacde60 100644 --- a/src/main/java/de/thm/arsnova/services/IQuestionService.java +++ b/src/main/java/de/thm/arsnova/services/IQuestionService.java @@ -26,7 +26,7 @@ import de.thm.arsnova.entities.InterposedQuestion; import de.thm.arsnova.entities.Question; public interface IQuestionService { - boolean saveQuestion(Question question); + Question saveQuestion(Question question); boolean saveQuestion(InterposedQuestion question); diff --git a/src/main/java/de/thm/arsnova/services/QuestionService.java b/src/main/java/de/thm/arsnova/services/QuestionService.java index ee50c779..2351a4ff 100644 --- a/src/main/java/de/thm/arsnova/services/QuestionService.java +++ b/src/main/java/de/thm/arsnova/services/QuestionService.java @@ -25,6 +25,8 @@ import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.fourspaces.couchdb.Document; + import de.thm.arsnova.annotation.Authenticated; import de.thm.arsnova.dao.IDatabaseDao; import de.thm.arsnova.entities.Answer; @@ -66,9 +68,13 @@ public class QuestionService implements IQuestionService { @Override @Authenticated - public boolean saveQuestion(Question question) { + public Question saveQuestion(Question question) { Session session = this.databaseDao.getSessionFromKeyword(question.getSession()); - return this.databaseDao.saveQuestion(session, question); + + Document d = this.databaseDao.saveQuestion(session, question); + question.set_id(d.getId()); + question.set_rev(d.getRev()); + return question; } @Override -- GitLab