diff --git a/yesod-core/ChangeLog.md b/yesod-core/ChangeLog.md index 7ec9decf..3c508ef0 100644 --- a/yesod-core/ChangeLog.md +++ b/yesod-core/ChangeLog.md @@ -1,3 +1,7 @@ +## 1.6.6 + +* `defaultErrorHandler` handles text/plain requests [#1522](https://github.com/yesodweb/yesod/pull/1520) + ## 1.6.5 * Add `fileSourceByteString` [#1503](https://github.com/yesodweb/yesod/pull/1503) diff --git a/yesod-core/Yesod/Core/Class/Yesod.hs b/yesod-core/Yesod/Core/Class/Yesod.hs index 345f202a..f2bb3e63 100644 --- a/yesod-core/Yesod/Core/Class/Yesod.hs +++ b/yesod-core/Yesod/Core/Class/Yesod.hs @@ -615,6 +615,7 @@ defaultErrorHandler NotFound = selectRep $ do let path' = TE.decodeUtf8With TEE.lenientDecode $ W.rawPathInfo r defaultMessageWidget "Not Found" [hamlet|
#{path'}|] provideRep $ return $ object ["message" .= ("Not Found" :: Text)] + provideRep $ return $ ("Not Found" :: Text) -- For API requests. -- For a user with a browser, @@ -638,6 +639,7 @@ defaultErrorHandler NotAuthenticated = selectRep $ do let apair u = ["authentication_url" .= rend u] content = maybe [] apair (authRoute site) return $ object $ ("message" .= ("Not logged in"::Text)):content + provideRep $ return $ ("Not logged in" :: Text) defaultErrorHandler (PermissionDenied msg) = selectRep $ do provideRep $ defaultLayout $ defaultMessageWidget @@ -645,6 +647,7 @@ defaultErrorHandler (PermissionDenied msg) = selectRep $ do [hamlet|
#{msg}|] provideRep $ return $ object ["message" .= ("Permission Denied. " <> msg)] + provideRep $ return $ "Permission Denied. " <> msg defaultErrorHandler (InvalidArgs ia) = selectRep $ do provideRep $ defaultLayout $ defaultMessageWidget @@ -655,6 +658,8 @@ defaultErrorHandler (InvalidArgs ia) = selectRep $ do
#{e}|]
provideRep $ return $ object ["message" .= ("Internal Server Error" :: Text), "error" .= e]
+ provideRep $ return $ "Internal Server Error: " <> e
+
defaultErrorHandler (BadMethod m) = selectRep $ do
provideRep $ defaultLayout $ defaultMessageWidget
"Method Not Supported"
[hamlet|Method #{S8.unpack m} not supported|]
provideRep $ return $ object ["message" .= ("Bad method" :: Text), "method" .= TE.decodeUtf8With TEE.lenientDecode m]
+ provideRep $ return $ "Bad Method " <> TE.decodeUtf8With TEE.lenientDecode m
asyncHelper :: (url -> [x] -> Text)
-> [Script url]
diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal
index d12f672e..c0883ed8 100644
--- a/yesod-core/yesod-core.cabal
+++ b/yesod-core/yesod-core.cabal
@@ -1,5 +1,5 @@
name: yesod-core
-version: 1.6.5
+version: 1.6.6
license: MIT
license-file: LICENSE
author: Michael Snoyman