From bc385cd7620df50110e57ac40bb5138f55d3b5a2 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Mon, 9 Sep 2013 22:39:44 -0700 Subject: Adding Playlist Support. The TrainingRecordResource now builds a playlist of videos for each user. The playlist is a map of video id to meta-data (completion date, completed, required). Some videos are required, others are not. TrainingPageResource now redirects to the earliest uncompleted chapter, based on information in the playlist. SurveyResultsResource now caches computed scores. --- .../backend/resources/SurveyResultsResource.java | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'src/com/p4square/grow/backend/resources/SurveyResultsResource.java') diff --git a/src/com/p4square/grow/backend/resources/SurveyResultsResource.java b/src/com/p4square/grow/backend/resources/SurveyResultsResource.java index 5e4a8bb..e93e253 100644 --- a/src/com/p4square/grow/backend/resources/SurveyResultsResource.java +++ b/src/com/p4square/grow/backend/resources/SurveyResultsResource.java @@ -31,7 +31,7 @@ import com.p4square.grow.backend.db.CassandraDatabase; public class SurveyResultsResource extends ServerResource { private final static Logger cLog = Logger.getLogger(SurveyResultsResource.class); - private final static ObjectMapper cMapper = new ObjectMapper(); + private final static ObjectMapper MAPPER = new ObjectMapper(); static enum RequestType { ASSESSMENT, ANSWER @@ -72,7 +72,10 @@ public class SurveyResultsResource extends ServerResource { break; case ASSESSMENT: - result = buildAssessment(); + result = mDb.getKey("assessments", mUserId, "summary"); + if (result == null) { + result = buildAssessment(); + } break; } @@ -135,7 +138,7 @@ public class SurveyResultsResource extends ServerResource { if (!row.isEmpty()) { Score score = new Score(); for (Column c : row) { - if (c.getName().equals("lastAnswered")) { + if (c.getName().equals("lastAnswered") || c.getName().equals("summary")) { continue; } @@ -153,7 +156,12 @@ public class SurveyResultsResource extends ServerResource { } sb.append(" }"); - return sb.toString(); + String summary = sb.toString(); + + // Persist summary + mDb.putKey("assessments", mUserId, "summary", summary); + + return summary; } private boolean scoreQuestion(final Score score, final String questionId, @@ -162,8 +170,8 @@ public class SurveyResultsResource extends ServerResource { final String data = mDb.getKey("strings", "/questions/" + questionId); try { - final Map questionMap = cMapper.readValue(data, Map.class); - final Map answerMap = cMapper.readValue(answerJson, Map.class); + final Map questionMap = MAPPER.readValue(data, Map.class); + final Map answerMap = MAPPER.readValue(answerJson, Map.class); final Question question = new Question((Map) questionMap); final String answerId = (String) answerMap.get("answerId"); -- cgit v1.2.3