From 9ba270a9e68569ce698d2838ab71f8a6f2303dbc Mon Sep 17 00:00:00 2001 From: Christoph Thelen <christoph.thelen@mni.thm.de> Date: Wed, 21 Aug 2013 15:57:38 +0200 Subject: [PATCH] Removed obsolete feedback methods --- .../java/de/thm/arsnova/dao/CouchDBDao.java | 191 ------------------ .../java/de/thm/arsnova/dao/IDatabaseDao.java | 7 - .../de/thm/arsnova/dao/StubDatabaseDao.java | 37 ---- .../arsnova/services/SessionServiceTest.java | 2 - 4 files changed, 237 deletions(-) diff --git a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java index 5e9d7aad..34aff2ef 100644 --- a/src/main/java/de/thm/arsnova/dao/CouchDBDao.java +++ b/src/main/java/de/thm/arsnova/dao/CouchDBDao.java @@ -25,7 +25,6 @@ import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Date; import java.util.List; @@ -51,7 +50,6 @@ import com.fourspaces.couchdb.ViewResults; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.Answer; -import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.FoodVote; import de.thm.arsnova.entities.InterposedQuestion; import de.thm.arsnova.entities.InterposedReadingCount; @@ -265,156 +263,6 @@ public class CouchDBDao implements IDatabaseDao { return this.getSession(sessionDocument.getString("keyword")); } - @Override - public final Feedback getFeedback(final String keyword) { - String sessionId = this.getSessionId(keyword); - if (sessionId == null) { - throw new NotFoundException(); - } - NovaView view = new NovaView("understanding/by_session"); - view.setGroup(true); - view.setStartKeyArray(sessionId); - view.setEndKeyArray(sessionId, "{}"); - ViewResults results = this.getDatabase().view(view); - - LOGGER.debug("Feedback: {}", results.getJSONArray("rows")); - - return this.createFeedbackObject(results); - } - - private Feedback createFeedbackObject(final ViewResults results) { - int[] values = {0, 0, 0, 0}; - JSONArray rows = results.getJSONArray("rows"); - - try { - for (int i = Feedback.MIN_FEEDBACK_TYPE; i <= Feedback.MAX_FEEDBACK_TYPE; i++) { - String key = rows.optJSONObject(i).optJSONArray("key").getString(1); - JSONObject feedback = rows.optJSONObject(i); - - if (key.equals("Bitte schneller")) { - values[Feedback.FEEDBACK_FASTER] = feedback.getInt("value"); - } - if (key.equals("Kann folgen")) { - values[Feedback.FEEDBACK_OK] = feedback.getInt("value"); - } - if (key.equals("Zu schnell")) { - values[Feedback.FEEDBACK_SLOWER] = feedback.getInt("value"); - } - if (key.equals("Nicht mehr dabei")) { - values[Feedback.FEEDBACK_AWAY] = feedback.getInt("value"); - } - } - } catch (Exception e) { - return new Feedback( - values[Feedback.FEEDBACK_FASTER], - values[Feedback.FEEDBACK_OK], - values[Feedback.FEEDBACK_SLOWER], - values[Feedback.FEEDBACK_AWAY] - ); - } - return new Feedback( - values[Feedback.FEEDBACK_FASTER], - values[Feedback.FEEDBACK_OK], - values[Feedback.FEEDBACK_SLOWER], - values[Feedback.FEEDBACK_AWAY] - ); - } - - @Override - public final boolean saveFeedback( - final String keyword, - final int value, - final de.thm.arsnova.entities.User user - ) { - String sessionId = this.getSessionId(keyword); - if (sessionId == null) { - return false; - } - if (!(value >= Feedback.MIN_FEEDBACK_TYPE && value <= Feedback.MAX_FEEDBACK_TYPE)) { - return false; - } - - Document feedback = new Document(); - List<Document> postedFeedback = findPreviousFeedback(sessionId, user); - - // Feedback can only be posted once. If there already is some feedback, - // we need to update it. - if (!postedFeedback.isEmpty()) { - for (Document f : postedFeedback) { - // Use the first found feedback and update value and timestamp - try { - feedback = this.getDatabase().getDocument(f.getId()); - feedback.put("value", feedbackValueToString(value)); - feedback.put("timestamp", System.currentTimeMillis()); - } catch (IOException e) { - return false; - } - break; - } - } else { - feedback.put("type", "understanding"); - feedback.put("user", user.getUsername()); - feedback.put("sessionId", sessionId); - feedback.put("timestamp", System.currentTimeMillis()); - feedback.put("value", feedbackValueToString(value)); - } - - try { - this.getDatabase().saveDocument(feedback); - } catch (IOException e) { - return false; - } - - return true; - } - - private List<Document> findPreviousFeedback(final String sessionId, final de.thm.arsnova.entities.User user) { - View view = new View("understanding/by_user"); - try { - view.setKey( - URLEncoder.encode( - "[\"" + sessionId + "\",\"" + user.getUsername() + "\"]", - "UTF-8" - ) - ); - } catch (UnsupportedEncodingException e) { - return Collections.<Document> emptyList(); - } - ViewResults results = this.getDatabase().view(view); - return results.getResults(); - } - - private String feedbackValueToString(final int value) { - switch (value) { - case Feedback.FEEDBACK_FASTER: - return "Bitte schneller"; - case Feedback.FEEDBACK_OK: - return "Kann folgen"; - case Feedback.FEEDBACK_SLOWER: - return "Zu schnell"; - case Feedback.FEEDBACK_AWAY: - return "Nicht mehr dabei"; - default: - return null; - } - } - - private int feedbackValueFromString(final String value) { - if (value.equals("Bitte schneller")) { - return Feedback.FEEDBACK_FASTER; - } - if (value.equals("Kann folgen")) { - return Feedback.FEEDBACK_OK; - } - if (value.equals("Zu schnell")) { - return Feedback.FEEDBACK_AWAY; - } - if (value.equals("Nicht mehr dabei")) { - return Feedback.FEEDBACK_AWAY; - } - return Integer.MIN_VALUE; - } - @Override @Transactional(isolation = Isolation.READ_COMMITTED) public final boolean sessionKeyAvailable(final String keyword) { @@ -424,16 +272,6 @@ public class CouchDBDao implements IDatabaseDao { return !results.containsKey(keyword); } - private String getSessionId(final String keyword) { - NovaView view = new NovaView("session/by_keyword"); - view.setKey(keyword); - ViewResults results = this.getDatabase().view(view); - if (results.getJSONArray("rows").optJSONObject(0) == null) { - return null; - } - return results.getJSONArray("rows").optJSONObject(0).optJSONObject("value").getString("_id"); - } - private String getSessionKeyword(final String internalSessionId) throws IOException { Document document = this.getDatabase().getDocument(internalSessionId); if (document.has("keyword")) { @@ -636,35 +474,6 @@ public class CouchDBDao implements IDatabaseDao { } } - @Override - public final Integer getMyFeedback(final String keyword, final User user) { - try { - String sessionId = this.getSessionId(keyword); - if (sessionId == null) { - throw new NotFoundException(); - } - - View view = new View("understanding/by_user"); - view.setKey( - URLEncoder.encode( - "[\"" + sessionId + "\", \"" + user.getUsername() + "\"]", - "UTF-8" - ) - ); - ViewResults results = this.getDatabase().view(view); - JSONArray rows = results.getJSONArray("rows"); - - if (rows.size() == 0) { - return null; - } - - JSONObject json = rows.optJSONObject(0).optJSONObject("value"); - return this.feedbackValueFromString(json.getString("value")); - } catch (UnsupportedEncodingException e) { - return null; - } - } - @Override public final List<String> getQuestionIds(final Session session, final User user) { NovaView view; diff --git a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java index f22a3906..d6027c30 100644 --- a/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java +++ b/src/main/java/de/thm/arsnova/dao/IDatabaseDao.java @@ -23,7 +23,6 @@ import java.util.List; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.entities.Answer; -import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.FoodVote; import de.thm.arsnova.entities.InterposedQuestion; import de.thm.arsnova.entities.InterposedReadingCount; @@ -41,10 +40,6 @@ public interface IDatabaseDao { Session saveSession(Session session); - Feedback getFeedback(String keyword); - - boolean saveFeedback(String keyword, int value, User user); - boolean sessionKeyAvailable(String keyword); Question saveQuestion(Session session, Question question); @@ -61,8 +56,6 @@ public interface IDatabaseDao { void updateSessionOwnerActivity(Session session); - Integer getMyFeedback(String keyword, User user); - List<String> getQuestionIds(Session session, User user); void deleteQuestionWithAnswers(Question question); diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java index 98301367..5f83db6d 100644 --- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java +++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java @@ -145,37 +145,6 @@ public class StubDatabaseDao implements IDatabaseDao { } return result; } - - @Override - public Feedback getFeedback(String keyword) { - // Magic keyword for forbidden session - if (keyword.equals("99999999")) - throw new ForbiddenException(); - - Feedback feedback = stubFeedbacks.get(keyword); - if (feedback == null) - throw new NotFoundException(); - - return feedback; - } - - @Override - public boolean saveFeedback(String keyword, int value, User user) { - if (stubFeedbacks.get(keyword) == null) { - stubFeedbacks.put(keyword, new Feedback(0, 0, 0, 0)); - } - - Feedback sessionFeedback = stubFeedbacks.get(keyword); - - List<Integer> values = sessionFeedback.getValues(); - values.set(value, values.get(value) + 1); - - sessionFeedback = new Feedback(values.get(0), values.get(1), values.get(2), values.get(3)); - - stubFeedbacks.put(keyword, sessionFeedback); - - return true; - } @Override public boolean sessionKeyAvailable(String keyword) { @@ -235,12 +204,6 @@ public class StubDatabaseDao implements IDatabaseDao { } - @Override - public Integer getMyFeedback(String keyword, User user) { - // TODO Auto-generated method stub - return null; - } - @Override public Answer getMyAnswer(String questionId, int piRound) { // TODO Auto-generated method stub diff --git a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java index 5700c0ea..c6ede4f8 100644 --- a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java @@ -103,8 +103,6 @@ public class SessionServiceTest { @Test public void testShouldSaveSession() { userService.setUserAuthenticated(true); - // Prevent "NotFoundExceptions" inside StubDatabase while saving the session - databaseDao.saveFeedback("11111111", 1, userService.getCurrentUser()); Session session = new Session(); session.setActive(true); -- GitLab