module Web.Controller.Sessions where import Web.Types import Web.View.Sessions.New import Generated.Types import IHP.LoginSupport.Helper.Controller import IHP.Prelude import IHP.ControllerPrelude instance Controller SessionsController where action NewSessionAction = do let user = newRecord @User render NewView { user } action CreateSessionAction = do (user, token) <- authenticate @User case user of Just user -> do setSession "userId" (show user.id) redirectTo HubsAction Nothing -> do setErrorMessage "Invalid email or password" redirectTo NewSessionAction action DeleteSessionAction = do unsetSession "userId" redirectTo NewSessionAction instance SessionsControllerConfig User