diff options
Diffstat (limited to 'src/com/p4square/grow/backend/GrowBackend.java')
-rw-r--r-- | src/com/p4square/grow/backend/GrowBackend.java | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/src/com/p4square/grow/backend/GrowBackend.java b/src/com/p4square/grow/backend/GrowBackend.java index 195554e..f844feb 100644 --- a/src/com/p4square/grow/backend/GrowBackend.java +++ b/src/com/p4square/grow/backend/GrowBackend.java @@ -19,12 +19,16 @@ import com.p4square.grow.config.Config; import com.p4square.grow.backend.db.CassandraDatabase; import com.p4square.grow.backend.db.CassandraKey; 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.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.provider.CollectionProvider; import com.p4square.grow.provider.Provider; import com.p4square.grow.provider.ProvidesQuestions; import com.p4square.grow.provider.ProvidesTrainingRecords; @@ -37,13 +41,17 @@ import com.p4square.grow.backend.resources.SurveyResultsResource; import com.p4square.grow.backend.resources.TrainingRecordResource; import com.p4square.grow.backend.resources.TrainingResource; +import com.p4square.grow.backend.feed.FeedDataProvider; +import com.p4square.grow.backend.feed.ThreadResource; +import com.p4square.grow.backend.feed.TopicResource; + /** * Main class for the backend application. * * @author Jesse Morgan <jesse@jesterpm.net> */ public class GrowBackend extends Application - implements ProvidesQuestions, ProvidesTrainingRecords { + implements ProvidesQuestions, ProvidesTrainingRecords, FeedDataProvider { private static final String DEFAULT_COLUMN = "value"; private final static Logger LOG = Logger.getLogger(GrowBackend.class); @@ -54,6 +62,9 @@ public class GrowBackend extends Application private final Provider<String, Question> mQuestionProvider; private final CassandraTrainingRecordProvider mTrainingRecordProvider; + private final CollectionProvider<String, String, MessageThread> mFeedThreadProvider; + private final CollectionProvider<String, String, Message> mFeedMessageProvider; + public GrowBackend() { this(new Config()); } @@ -69,6 +80,11 @@ public class GrowBackend extends Application } }; + mFeedThreadProvider = new CassandraCollectionProvider<MessageThread>(mDatabase, + "feedthreads", MessageThread.class); + mFeedMessageProvider = new CassandraCollectionProvider<Message>(mDatabase, + "feedmessages", Message.class); + mTrainingRecordProvider = new CassandraTrainingRecordProvider(mDatabase); } @@ -97,6 +113,11 @@ public class GrowBackend extends Application // Misc. router.attach("/banner", BannerResource.class); + // Feed + router.attach("/feed/{topic}", TopicResource.class); + router.attach("/feed/{topic}/{thread}", ThreadResource.class); + //router.attach("/feed/{topic/{thread}/{message}", MessageResource.class); + return router; } @@ -148,6 +169,16 @@ public class GrowBackend extends Application return mTrainingRecordProvider.getDefaultPlaylist(); } + @Override + public CollectionProvider<String, String, MessageThread> getThreadProvider() { + return mFeedThreadProvider; + } + + @Override + public CollectionProvider<String, String, Message> getMessageProvider() { + return mFeedMessageProvider; + } + /** * Stand-alone main for testing. */ |