summaryrefslogtreecommitdiff
path: root/src/com/p4square/grow/frontend
diff options
context:
space:
mode:
authorJesse Morgan <jesse@jesterpm.net>2016-03-22 21:42:03 -0700
committerJesse Morgan <jesse@jesterpm.net>2016-03-22 21:42:03 -0700
commit6698ffbb300ff8e48b5f3fe59144c699d39ab094 (patch)
treed7964fa97fff6d7ac4e219d75b49e47615550d28 /src/com/p4square/grow/frontend
parentab52d26e4c0e3d939e681020c7c2cc3d14d4b595 (diff)
Integrating the ProgressReporter
Using the new ProgressReporter interface in AssessmentResultsPage and ChapterCompletePage.
Diffstat (limited to 'src/com/p4square/grow/frontend')
-rw-r--r--src/com/p4square/grow/frontend/AssessmentResultsPage.java32
-rw-r--r--src/com/p4square/grow/frontend/ChapterCompletePage.java27
-rw-r--r--src/com/p4square/grow/frontend/IntegrationDriver.java9
-rw-r--r--src/com/p4square/grow/frontend/ProgressReporter.java5
4 files changed, 28 insertions, 45 deletions
diff --git a/src/com/p4square/grow/frontend/AssessmentResultsPage.java b/src/com/p4square/grow/frontend/AssessmentResultsPage.java
index 9b66794..f1c924b 100644
--- a/src/com/p4square/grow/frontend/AssessmentResultsPage.java
+++ b/src/com/p4square/grow/frontend/AssessmentResultsPage.java
@@ -7,6 +7,7 @@ package com.p4square.grow.frontend;
import java.util.Date;
import java.util.Map;
+import com.fasterxml.jackson.core.JsonProcessingException;
import com.p4square.f1oauth.FellowshipOneIntegrationDriver;
import freemarker.template.Template;
@@ -30,6 +31,7 @@ import com.p4square.f1oauth.F1User;
import com.p4square.grow.config.Config;
import com.p4square.grow.provider.JsonEncodedProvider;
+import org.restlet.security.User;
/**
* This page fetches the user's final score and displays the transitional page between
@@ -103,30 +105,18 @@ public class AssessmentResultsPage extends FreeMarkerPageResource {
}
private void publishScoreInF1(Map results) {
- if (!(getRequest().getClientInfo().getUser() instanceof F1User)) {
- // Only useful if the user is from F1.
- return;
- }
+ final ProgressReporter reporter = mGrowFrontend.getThirdPartyIntegrationFactory().getProgressReporter();
- F1User user = (F1User) getRequest().getClientInfo().getUser();
+ try {
+ final User user = getRequest().getClientInfo().getUser();
+ final String level = results.get("result").toString();
+ final Date completionDate = new Date();
+ final String data = JsonEncodedProvider.MAPPER.writeValueAsString(results);
- // Update the attribute.
- String attributeName = "Assessment Complete - " + results.get("result");
+ reporter.reportAssessmentComplete(user, level, completionDate, data);
- try {
- Attribute attribute = new Attribute(attributeName);
- attribute.setStartDate(new Date());
- attribute.setComment(JsonEncodedProvider.MAPPER.writeValueAsString(results));
-
- F1API f1 = ((FellowshipOneIntegrationDriver) mGrowFrontend.getThirdPartyIntegrationFactory())
- .getF1Access().getAuthenticatedApi(user);
- if (!f1.addAttribute(user.getIdentifier(), attribute)) {
- LOG.error("addAttribute failed for " + user.getIdentifier()
- + " with attribute " + attributeName);
- }
- } catch (Exception e) {
- LOG.error("addAttribute failed for " + user.getIdentifier()
- + " with attribute " + attributeName, e);
+ } catch (JsonProcessingException e) {
+ LOG.error("Failed to generate json " + e.getMessage(), e);
}
}
diff --git a/src/com/p4square/grow/frontend/ChapterCompletePage.java b/src/com/p4square/grow/frontend/ChapterCompletePage.java
index 2dd1ecf..35abc43 100644
--- a/src/com/p4square/grow/frontend/ChapterCompletePage.java
+++ b/src/com/p4square/grow/frontend/ChapterCompletePage.java
@@ -32,6 +32,7 @@ import com.p4square.grow.config.Config;
import com.p4square.grow.model.TrainingRecord;
import com.p4square.grow.provider.Provider;
import com.p4square.grow.provider.TrainingRecordProvider;
+import org.restlet.security.User;
/**
* This resource displays the transitional page between chapters.
@@ -159,30 +160,12 @@ public class ChapterCompletePage extends FreeMarkerPageResource {
}
private void assignAttribute() {
- if (!(getRequest().getClientInfo().getUser() instanceof F1User)) {
- // Only useful if the user is from F1.
- return;
- }
-
- F1User user = (F1User) getRequest().getClientInfo().getUser();
+ final ProgressReporter reporter = mGrowFrontend.getThirdPartyIntegrationFactory().getProgressReporter();
- // Update the attribute.
- String attributeName = "Training Complete - " + mChapter;
+ final User user = getRequest().getClientInfo().getUser();
+ final Date completionDate = new Date();
- try {
- Attribute attribute = new Attribute(attributeName);
- attribute.setStartDate(new Date());
-
- F1API f1 = ((FellowshipOneIntegrationDriver) mGrowFrontend.getThirdPartyIntegrationFactory())
- .getF1Access().getAuthenticatedApi(user);
- if (!f1.addAttribute(user.getIdentifier(), attribute)) {
- LOG.error("addAttribute failed for " + user.getIdentifier()
- + " with attribute " + attributeName);
- }
- } catch (Exception e) {
- LOG.error("addAttribute failed for " + user.getIdentifier()
- + " with attribute " + attributeName, e);
- }
+ reporter.reportChapterComplete(user, mChapter, completionDate);
}
/**
diff --git a/src/com/p4square/grow/frontend/IntegrationDriver.java b/src/com/p4square/grow/frontend/IntegrationDriver.java
index 3370116..b9c3508 100644
--- a/src/com/p4square/grow/frontend/IntegrationDriver.java
+++ b/src/com/p4square/grow/frontend/IntegrationDriver.java
@@ -14,4 +14,13 @@ public interface IntegrationDriver {
* @return A Verifier.
*/
Verifier newUserAuthenticationVerifier();
+
+ /**
+ * Return a ProgressReporter for this Church Management System.
+ *
+ * The ProgressReporter should be thread-safe.
+ *
+ * @return The ProgressReporter.
+ */
+ ProgressReporter getProgressReporter();
}
diff --git a/src/com/p4square/grow/frontend/ProgressReporter.java b/src/com/p4square/grow/frontend/ProgressReporter.java
index 9b57ff4..2f36832 100644
--- a/src/com/p4square/grow/frontend/ProgressReporter.java
+++ b/src/com/p4square/grow/frontend/ProgressReporter.java
@@ -20,10 +20,11 @@ public interface ProgressReporter {
void reportAssessmentComplete(User user, String level, Date date, String results);
/**
+ * Report that the User completed the chapter.
*
* @param user The user who completed the chapter.
- * @param chapter The chatper completed.
- * @param date Teh completion date.
+ * @param chapter The chapter completed.
+ * @param date The completion date.
*/
void reportChapterComplete(User user, String chapter, Date date);
}