yammat/Handler/Select.hs
2015-04-04 06:46:33 +02:00

65 lines
1.9 KiB
Haskell

module Handler.Select where
import Import
import Handler.Common
import qualified Text.Read as R
import qualified Data.Text as T
getSelectR :: UserId -> Handler Html
getSelectR uId = do
mUser <- runDB $ get uId
case mUser of
Just user -> do
beverages <- runDB $ selectList [BeverageAmount >=. 0] [Desc BeverageIdent]
defaultLayout $ do
$(widgetFile "select")
Nothing -> do
setMessage "Benutzer unbekannt"
redirect $ HomeR
postSelectR :: UserId -> Handler Html
postSelectR = error "Not yet implemented: postSelectR"
getSelectCashR :: Handler Html
getSelectCashR = do
beverages <- runDB $ selectList [BeverageAmount >=. 0] [Desc BeverageIdent]
defaultLayout $ do
$(widgetFile "selectCash")
getRechargeR :: UserId -> Handler Html
getRechargeR uId = do
mUser <- runDB $ get uId
case mUser of
Just user -> do
(rechargeWidget, enctype) <- generateFormPost rechargeForm
defaultLayout $ do
$(widgetFile "recharge")
Nothing -> do
setMessage "Benutzer unbekannt"
redirect $ HomeR
postRechargeR :: UserId -> Handler Html
postRechargeR uId = do
mUser <- runDB $ get uId
case mUser of
Just user -> do
((res, _), _) <- runFormPost rechargeForm
case res of
FormSuccess amount -> do
updateCashier amount ("Guthaben: " `T.append` (userIdent user))
time <- liftIO getCurrentTime
secs <- return $ R.read $ formatTime defaultTimeLocale "%s" time
runDB $ update uId [UserBalance +=. amount, UserTimestamp =. secs]
setMessage "Guthaben erfolgreich aufgeladen"
redirect $ HomeR
_ -> do
setMessage "Fehler beim Aufladen"
redirect $ HomeR
Nothing -> do
setMessage "Benutzer unbekannt"
redirect $ HomeR
rechargeForm :: Form Int
rechargeForm = renderDivs
$ areq currencyField "Betrag" (Just 0)