module Yesod.Helpers.Feed
( newsFeed
, RepAtomRss (..)
, module Yesod.Helpers.FeedTypes
) where
import Yesod.Helpers.FeedTypes
import Yesod.Helpers.AtomFeed
import Yesod.Helpers.RssFeed
import Yesod.Content (HasReps (chooseRep), typeAtom, typeRss)
import Yesod.Handler (Route, GGHandler)
data RepAtomRss = RepAtomRss RepAtom RepRss
instance HasReps RepAtomRss where
chooseRep (RepAtomRss (RepAtom a) (RepRss r)) = chooseRep
[ (typeAtom, a)
, (typeRss, r)
]
newsFeed :: Monad mo => Feed (Route master) -> GGHandler sub master mo RepAtomRss
newsFeed f = do
a <- atomFeed f
r <- rssFeed f
return $ RepAtomRss a r