gonito/Handler/ListChallenges.hs

32 lines
1.1 KiB
Haskell
Raw Normal View History

2015-09-04 23:23:32 +02:00
module Handler.ListChallenges where
import Import
getListChallengesR :: Handler Html
2019-03-20 16:31:08 +01:00
getListChallengesR = generalListChallenges [ChallengeArchived !=. Just True]
getListArchivedChallengesR :: Handler Html
getListArchivedChallengesR = generalListChallenges [ChallengeArchived ==. Just True]
2020-10-12 07:17:48 +02:00
generalListChallenges :: [Filter Challenge] -> Handler Html
2019-03-20 16:31:08 +01:00
generalListChallenges filterExpr = do
2020-10-12 07:17:48 +02:00
challenges <- getChallenges filterExpr
2015-09-04 23:23:32 +02:00
defaultLayout $ do
setTitle "List challenges"
$(widgetFile "list-challenges")
2020-10-12 07:17:48 +02:00
getChallenges :: [Filter Challenge] -> Handler [Entity Challenge]
getChallenges filterExpr = runDB $ selectList filterExpr [Desc ChallengeStarred, Desc ChallengeStamp]
listChallengesCore :: [Entity Challenge] -> Widget
2015-09-04 23:23:32 +02:00
listChallengesCore challenges = $(widgetFile "list-challenges-core")
2018-01-18 08:21:06 +01:00
getChallengeImageR :: ChallengeId -> Handler Html
getChallengeImageR challengeId = do
challenge <- runDB $ get404 challengeId
case challengeImage challenge of
Just image -> do
addHeader "Content-Disposition" "attachment; filename=\"image.png\""
sendResponse (typePng, toContent image)
Nothing -> sendResponseStatus status202 ()