summaryrefslogtreecommitdiff
path: root/src/main/java/com/p4square/f1oauth/FellowshipOneIntegrationDriver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/p4square/f1oauth/FellowshipOneIntegrationDriver.java')
-rw-r--r--src/main/java/com/p4square/f1oauth/FellowshipOneIntegrationDriver.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/main/java/com/p4square/f1oauth/FellowshipOneIntegrationDriver.java b/src/main/java/com/p4square/f1oauth/FellowshipOneIntegrationDriver.java
new file mode 100644
index 0000000..865f5d6
--- /dev/null
+++ b/src/main/java/com/p4square/f1oauth/FellowshipOneIntegrationDriver.java
@@ -0,0 +1,55 @@
+package com.p4square.f1oauth;
+
+import com.codahale.metrics.MetricRegistry;
+import com.p4square.grow.config.Config;
+import com.p4square.grow.frontend.IntegrationDriver;
+import com.p4square.grow.frontend.ProgressReporter;
+import org.restlet.Context;
+import org.restlet.security.Verifier;
+
+/**
+ * The FellowshipOneIntegrationDriver creates implementations of various
+ * objects to support integration with Fellowship One.
+ */
+public class FellowshipOneIntegrationDriver implements IntegrationDriver {
+
+ private final Context mContext;
+ private final MetricRegistry mMetricRegistry;
+ private final Config mConfig;
+ private final F1Access mAPI;
+
+ private final ProgressReporter mProgressReporter;
+
+ public FellowshipOneIntegrationDriver(final Context context) {
+ mContext = context;
+ mConfig = (Config) context.getAttributes().get("com.p4square.grow.config");
+ mMetricRegistry = (MetricRegistry) context.getAttributes().get("com.p4square.grow.metrics");
+
+ mAPI = new F1Access(context,
+ mConfig.getString("f1ConsumerKey", ""),
+ mConfig.getString("f1ConsumerSecret", ""),
+ mConfig.getString("f1BaseUrl", "staging.fellowshiponeapi.com"),
+ mConfig.getString("f1ChurchCode", "pfseawa"),
+ F1Access.UserType.WEBLINK);
+ mAPI.setMetricRegistry(mMetricRegistry);
+
+ mProgressReporter = new F1ProgressReporter(mAPI);
+ }
+
+ /**
+ * @return An F1Access instance.
+ */
+ public F1Access getF1Access() {
+ return mAPI;
+ }
+
+ @Override
+ public Verifier newUserAuthenticationVerifier() {
+ return new SecondPartyVerifier(mContext, mAPI);
+ }
+
+ @Override
+ public ProgressReporter getProgressReporter() {
+ return mProgressReporter;
+ }
+}