29 lines
880 B
Haskell
29 lines
880 B
Haskell
module Handler.Tutorial.Register
|
|
( postTRegisterR
|
|
) where
|
|
|
|
import Import
|
|
import Handler.Utils
|
|
import Handler.Utils.Tutorial
|
|
|
|
|
|
postTRegisterR :: TermId -> SchoolId -> CourseShorthand -> TutorialName -> Handler ()
|
|
postTRegisterR tid ssh csh tutn = do
|
|
uid <- requireAuthId
|
|
|
|
Entity tutid Tutorial{..} <- runDB $ fetchTutorial tid ssh csh tutn
|
|
|
|
((btnResult, _), _) <- runFormPost buttonForm
|
|
|
|
formResult btnResult $ \case
|
|
BtnRegister -> do
|
|
runDB . void . insert $ TutorialParticipant tutid uid
|
|
addMessageI Success $ MsgTutorialRegisteredSuccess tutorialName
|
|
redirect $ CourseR tid ssh csh CShowR
|
|
BtnDeregister -> do
|
|
runDB . deleteBy $ UniqueTutorialParticipant tutid uid
|
|
addMessageI Success $ MsgTutorialDeregisteredSuccess tutorialName
|
|
redirect $ CourseR tid ssh csh CShowR
|
|
|
|
invalidArgs ["Register/Deregister button required"]
|