23 lines
714 B
Haskell
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
|