module Lucienne.Controller.Feed (Message (..), feed, home) where import Data.List (find) import Lucienne.Controller.Imports import qualified Lucienne.Database as DB import qualified Lucienne.View.Feed as View import qualified Lucienne.Model.Feed as F feed :: String -> User -> Controller Response feed feedId user = do feeds <- lift $ DB.feedsByUser user items <- lift $ DB.feedItemsByFeedId user feedId case (find (\f -> F.id f == readObjectId feedId) feeds) of Nothing -> mzero Just feed -> ok $ toResponse $ View.feed user feed items feeds home :: User -> Controller Response home user = do msg <- getMessages feeds <- lift $ DB.feedsByUser user items <- lift $ DB.feedItems user ok $ toResponse $ View.home user msg items feeds