From 2f736d013550b36cd96ba8688846919f7da8f461 Mon Sep 17 00:00:00 2001 From: Jesse Morgan Date: Sat, 15 Mar 2014 10:19:35 -0700 Subject: Adding authenticated outside access to backend. --- src/com/p4square/grow/backend/GrowBackend.java | 32 +++++++++++++++++++++----- 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'src/com/p4square/grow/backend/GrowBackend.java') diff --git a/src/com/p4square/grow/backend/GrowBackend.java b/src/com/p4square/grow/backend/GrowBackend.java index f844feb..683c99b 100644 --- a/src/com/p4square/grow/backend/GrowBackend.java +++ b/src/com/p4square/grow/backend/GrowBackend.java @@ -22,17 +22,19 @@ import com.p4square.grow.backend.db.CassandraProviderImpl; import com.p4square.grow.backend.db.CassandraCollectionProvider; import com.p4square.grow.backend.db.CassandraTrainingRecordProvider; +import com.p4square.grow.model.Message; +import com.p4square.grow.model.MessageThread; +import com.p4square.grow.model.Playlist; import com.p4square.grow.model.Question; import com.p4square.grow.model.TrainingRecord; -import com.p4square.grow.model.Playlist; -import com.p4square.grow.model.MessageThread; -import com.p4square.grow.model.Message; +import com.p4square.grow.model.UserRecord; import com.p4square.grow.provider.CollectionProvider; +import com.p4square.grow.provider.DelegateProvider; import com.p4square.grow.provider.Provider; import com.p4square.grow.provider.ProvidesQuestions; import com.p4square.grow.provider.ProvidesTrainingRecords; -import com.p4square.grow.provider.QuestionProvider; +import com.p4square.grow.provider.ProvidesUserRecords; import com.p4square.grow.backend.resources.AccountResource; import com.p4square.grow.backend.resources.BannerResource; @@ -51,7 +53,8 @@ import com.p4square.grow.backend.feed.TopicResource; * @author Jesse Morgan */ public class GrowBackend extends Application - implements ProvidesQuestions, ProvidesTrainingRecords, FeedDataProvider { + implements ProvidesQuestions, ProvidesTrainingRecords, FeedDataProvider, + ProvidesUserRecords { private static final String DEFAULT_COLUMN = "value"; private final static Logger LOG = Logger.getLogger(GrowBackend.class); @@ -59,6 +62,8 @@ public class GrowBackend extends Application private final Config mConfig; private final CassandraDatabase mDatabase; + private final Provider mUserRecordProvider; + private final Provider mQuestionProvider; private final CassandraTrainingRecordProvider mTrainingRecordProvider; @@ -73,7 +78,16 @@ public class GrowBackend extends Application mConfig = config; mDatabase = new CassandraDatabase(); - mQuestionProvider = new QuestionProvider(new CassandraProviderImpl(mDatabase, Question.class)) { + mUserRecordProvider = new DelegateProvider( + new CassandraProviderImpl(mDatabase, UserRecord.class)) { + @Override + public CassandraKey makeKey(String userid) { + return new CassandraKey("accounts", userid, DEFAULT_COLUMN); + } + }; + + mQuestionProvider = new DelegateProvider( + new CassandraProviderImpl(mDatabase, Question.class)) { @Override public CassandraKey makeKey(String questionId) { return new CassandraKey("strings", "/questions/" + questionId, DEFAULT_COLUMN); @@ -93,6 +107,7 @@ public class GrowBackend extends Application Router router = new Router(getContext()); // Account API + router.attach("/accounts", AccountResource.class); router.attach("/accounts/{userId}", AccountResource.class); // Survey API @@ -152,6 +167,11 @@ public class GrowBackend extends Application return mDatabase; } + @Override + public Provider getUserRecordProvider() { + return mUserRecordProvider; + } + @Override public Provider getQuestionProvider() { return mQuestionProvider; -- cgit v1.2.3