lucienne-0.0.1: Lucienne/Controller/Message.hs
module Lucienne.Controller.Message
(Message (..), getMessages, withMessage, readParameter)
where
import qualified Happstack.Server as S
import Control.Applicative (optional,(<$>))
import Lucienne.Controller (Controller)
import Lucienne.Url (Url)
data Message = UsernameExists
| CheckPassword
| UserCreated
| AlreadySubscribed
deriving (Read,Show)
toMessage :: Message -> String
toMessage msg = case msg of
UsernameExists -> "Username already in use"
CheckPassword -> "Check password"
UserCreated -> "User successfully created"
AlreadySubscribed -> "You've already subscribed this feed"
getMessages :: Controller [String]
getMessages = do
mMsg <- readParameter "msg"
return $ case mMsg of
Nothing -> [ ]
Just msg -> [toMessage msg]
withMessage :: Message -> Url -> Url
withMessage msg url = concat [url, "?msg=", show msg]
readParameter :: Read a => String -> Controller (Maybe a)
readParameter param = fmap read <$> (optional $ S.look param)