Defer error handling of runInputForm to user code.

This commit is contained in:
Elise Huard 2014-01-30 15:28:56 +01:00
parent c0e366bd72
commit 12897ae5a0

View File

@ -65,12 +65,12 @@ runInputGet (FormInput f) = do
toMap :: [(Text, a)] -> Map.Map Text [a]
toMap = Map.unionsWith (++) . map (\(x, y) -> Map.singleton x [y])
runInputPost :: MonadHandler m => FormInput m a -> m a
runInputPost :: MonadHandler m => FormInput m a -> m (FormResult a)
runInputPost (FormInput f) = do
(env, fenv) <- liftM (toMap *** toMap) runRequestBody
m <- getYesod
l <- languages
emx <- f m l env fenv
case emx of
Left errs -> invalidArgs $ errs []
Right x -> return x
Left errs -> return $ FormFailure (errs [])
Right x -> return (FormSuccess x)