{-# 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