diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2013-09-09 22:39:44 -0700 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2013-09-09 22:39:44 -0700 |
commit | bc385cd7620df50110e57ac40bb5138f55d3b5a2 (patch) | |
tree | 1572e09a51e5d8db1bb136d8cb5df9f6b21acd22 /src/com/p4square/grow/backend/resources/SurveyResultsResource.java | |
parent | 2872d474307595a96ab4373c1294d1b316ec0ae8 (diff) |
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.
Diffstat (limited to 'src/com/p4square/grow/backend/resources/SurveyResultsResource.java')
-rw-r--r-- | src/com/p4square/grow/backend/resources/SurveyResultsResource.java | 20 |
1 files changed, 14 insertions, 6 deletions
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<String> 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<String, Object>) questionMap); final String answerId = (String) answerMap.get("answerId"); |