JSON-specific sendResponseStatus

This commit is contained in:
Chris Allen 2015-11-25 14:49:53 -06:00
parent 77c614fa86
commit 6a60dac366

View File

@ -93,6 +93,8 @@ module Yesod.Core.Handler
, sendFilePart
, sendResponse
, sendResponseStatus
-- ** Type specific response with custom status
, sendResponseStatusJSON
, sendResponseCreated
, sendWaiResponse
, sendWaiApplication
@ -198,6 +200,7 @@ import Network.Wai.Middleware.HttpAuth
( extractBasicAuth, extractBearerAuth )
import Control.Monad.Trans.Class (lift)
import Data.Aeson (ToJSON(..))
import qualified Data.Text as T
import Data.Text.Encoding (decodeUtf8With, encodeUtf8)
import Data.Text.Encoding.Error (lenientDecode)
@ -575,6 +578,11 @@ sendResponse = handlerError . HCContent H.status200 . toTypedContent
sendResponseStatus :: (MonadHandler m, ToTypedContent c) => H.Status -> c -> m a
sendResponseStatus s = handlerError . HCContent s . toTypedContent
-- | Bypass remaining handler code and output the given JSON with the given
-- status code.
sendResponseStatusJSON :: (MonadHandler m, ToJSON a) => H.Status -> a -> m a
sendResponseStatusJSON s v = sendResponseStatus s (toJSON v)
-- | Send a 201 "Created" response with the given route as the Location
-- response header.
sendResponseCreated :: MonadHandler m => Route (HandlerSite m) -> m a