packages feed

lucienne-0.0.1: Lucienne/Controller/Feed.hs

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