diff --git a/src/main/java/de/thm/arsnova/SessionController.java b/src/main/java/de/thm/arsnova/SessionController.java index 5b7cdb27f909b281d9dc3f648a2439d2381cc335..497fbfc8b00eff815a46b1346bccdf546ec58f94 100644 --- a/src/main/java/de/thm/arsnova/SessionController.java +++ b/src/main/java/de/thm/arsnova/SessionController.java @@ -57,7 +57,12 @@ public class SessionController { } @RequestMapping(value="/session/{sessionkey}/feedback", method=RequestMethod.POST) - public boolean postFeedback(@PathVariable String sessionkey, @RequestBody int value, HttpServletResponse response) { - return false; + public String postFeedback(@PathVariable String sessionkey, @RequestBody int value, HttpServletResponse response) { + if (sessionService.postFeedback(sessionkey, value)) { + response.setStatus(HttpStatus.CREATED.value()); + return null; + } + response.setStatus(HttpStatus.SERVICE_UNAVAILABLE.value()); + return null; } } diff --git a/src/main/java/de/thm/arsnova/services/ISessionService.java b/src/main/java/de/thm/arsnova/services/ISessionService.java index b14242b55ff657cb133ca7c56ee86d138da6514f..9f3bb3942980e6678bbd78d2a7756bb01e8959d3 100644 --- a/src/main/java/de/thm/arsnova/services/ISessionService.java +++ b/src/main/java/de/thm/arsnova/services/ISessionService.java @@ -26,6 +26,6 @@ public interface ISessionService { public Session getSession(String keyword); public Feedback getFeedback(String keyword); - public void postFeedback(String keyword, int value); + public boolean postFeedback(String keyword, int value); } \ 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 d8b8f37fde2fe1e8c2c0cc8d4ca870d9b4ab70b7..23969d7105200dc095e28ff05d9d33c6bcf3c771 100644 --- a/src/main/java/de/thm/arsnova/services/SessionService.java +++ b/src/main/java/de/thm/arsnova/services/SessionService.java @@ -18,6 +18,7 @@ */ package de.thm.arsnova.services; +import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; @@ -32,6 +33,7 @@ import org.springframework.security.core.userdetails.User; import org.springframework.stereotype.Service; import com.fourspaces.couchdb.Database; +import com.fourspaces.couchdb.Document; import com.fourspaces.couchdb.View; import com.fourspaces.couchdb.ViewResults; @@ -122,8 +124,40 @@ public class SessionService implements ISessionService { } @Override - public void postFeedback(String keyword, int value) { - + public boolean postFeedback(String keyword, int value) { + String sessionId = this.getSessionId(keyword); + if (sessionId == null) return false; + + Document feedback = new Document(); + feedback.put("type", "understanding"); + feedback.put("user", this.actualUserName()); + feedback.put("sessionId", sessionId); + feedback.put("timestamp", System.currentTimeMillis()); + + switch (value) { + case 0: + feedback.put("value", "Bitte schneller"); + break; + case 1: + feedback.put("value", "Kann folgen"); + break; + case 2: + feedback.put("value", "Zu schnell"); + break; + case 3: + feedback.put("value", "Nicht mehr dabei"); + break; + default: + return false; + } + + try { + database.saveDocument(feedback); + } catch (IOException e) { + return false; + } + + return true; } private String getSessionId(String keyword) {