haskus-web-1.0: src/lib/Haskus/Web/Response.hs
module Haskus.Web.Response
( sendJson
, sendJS
, sendPNG
, sendJPG
, sendData
, sendBinary
, sendLazyJson
, sendLazyData
)
where
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString.Char8 as BS8
import Haskus.Web.Server
-- | Send JSON text
sendJson :: BS.ByteString -> ServerPartT IO Response
sendJson = sendData "application/json"
-- | Send JS script
sendJS :: BS.ByteString -> ServerPartT IO Response
sendJS = sendData "text/javascript"
-- | Send binary data
sendBinary :: BS.ByteString -> ServerPartT IO Response
sendBinary = sendData "application/octet-stream"
-- | Send a PNG image
sendPNG :: BS.ByteString -> ServerPartT IO Response
sendPNG = sendData "image/png"
-- | Send a JPG image
sendJPG :: BS.ByteString -> ServerPartT IO Response
sendJPG = sendData "image/jpg"
-- | Send data with the given MIME content type
sendData :: String -> BS.ByteString -> ServerPartT IO Response
sendData mime dat = ok (toResponseBS (BS8.pack mime) (LBS.fromStrict dat))
-- | Send JSON text
sendLazyJson :: LBS.ByteString -> ServerPartT IO Response
sendLazyJson = sendLazyData "application/json"
-- | Send data with the given MIME content type
sendLazyData :: String -> LBS.ByteString -> ServerPartT IO Response
sendLazyData mime dat = ok (toResponseBS (BS8.pack mime) dat)