{- This file is part of Vervis. - - Written in 2016 by fr33domlover . - - ♡ Copying is an act of love. Please copy, reuse and share. - - The author(s) have dedicated all copyright and related and neighboring - rights to this software to the public domain worldwide. This software is - distributed without any warranty. - - You should have received a copy of the CC0 Public Domain Dedication along - with this software. If not, see - . -} module Handler.Person ( getPeopleR , getPersonR ) where import Import hiding ((==.)) --import Prelude import Text.Blaze (text) import Database.Esqueleto --import Model --import Yesod.Core (Handler) getPeopleR :: Handler Html getPeopleR = do people <- runDB $ select $ from $ \ (sharer, person) -> do where_ $ sharer ^. SharerId ==. person ^. PersonIdent orderBy [asc $ sharer ^. SharerIdent] return $ sharer ^. SharerIdent defaultLayout $ do setTitle "Vervis > People" $(widgetFile "people") getPersonR :: Text -> Handler Html getPersonR ident = do people <- runDB $ select $ from $ \ (sharer, person) -> do where_ $ sharer ^. SharerIdent ==. val ident &&. sharer ^. SharerId ==. person ^. PersonIdent return person case people of [] -> notFound p:ps -> defaultLayout $ do let mperson = if null ps then Just p else Nothing setTitle $ text $ "Vervis > People > " <> ident $(widgetFile "person")