lebd/src/Handler/Categories.hs

23 lines
714 B
Haskell

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
module Handler.Categories where
import Import hiding ( on, (==.) )
import Database.Esqueleto
import Web.Slug ( Slug, unSlug )
import Widget.Feed ( hFeed )
import qualified Data.Text as T
getCategoryR :: Slug -> Handler Html
getCategoryR tag = do
entries <- runDB . select . from $ \(category `InnerJoin` ec `InnerJoin` entry) -> do
on $ entry ^. EntryId ==. ec ^. EntryCategoryEntryId
on $ category ^. CategoryId ==. ec ^. EntryCategoryCategoryId
where_ $ category ^. CategoryTag ==. val tag
return entry
defaultLayout $ do
setTitle . toHtml . T.cons '#' . unSlug $ tag
hFeed entries