module Web.Routes.Nested.FileExtListener.Json where
import Web.Routes.Nested.FileExtListener.Types
import qualified Data.Aeson as A
import Data.Map
import Network.HTTP.Types (RequestHeaders,
Status, status200)
import Network.Wai
import Control.Monad.Writer
json :: ( A.ToJSON j
, Monad m ) =>
j -> FileExtListenerT Response m ()
json i =
let r = responseLBS status200 [("Content-Type", "application/json")] $
A.encode i in
FileExtListenerT $ tell $
FileExts $ singleton Json r
jsonStatus :: ( A.ToJSON j
, Monad m ) =>
Status -> j -> FileExtListenerT Response m ()
jsonStatus s i =
let r = responseLBS s [("Content-Type", "application/json")] $
A.encode i in
FileExtListenerT $ tell $
FileExts $ singleton Json r
jsonp :: ( A.ToJSON j
, Monad m ) =>
j -> FileExtListenerT Response m ()
jsonp i =
let r = responseLBS status200 [("Content-Type", "application/javascript")] $
A.encode i in
FileExtListenerT $ tell $
FileExts $ singleton Json r
jsonpStatus :: ( A.ToJSON j
, Monad m ) =>
Status -> j -> FileExtListenerT Response m ()
jsonpStatus s i =
let r = responseLBS s [("Content-Type", "application/javascript")] $
A.encode i in
FileExtListenerT $ tell $
FileExts $ singleton Json r
jsonHeaders :: ( A.ToJSON j
, Monad m ) =>
RequestHeaders -> j -> FileExtListenerT Response m ()
jsonHeaders hs i =
let r = responseLBS status200 hs $
A.encode i in
FileExtListenerT $ tell $
FileExts $ singleton Json r
jsonStatusHeaders :: ( A.ToJSON j
, Monad m ) =>
Status -> RequestHeaders -> j -> FileExtListenerT Response m ()
jsonStatusHeaders s hs i =
let r = responseLBS s hs $
A.encode i in
FileExtListenerT $ tell $
FileExts $ singleton Json r
jsonOnly :: A.ToJSON j =>
j -> Response
jsonOnly i =
responseLBS status200 [("Content-Type", "application/json")] $ A.encode i
jsonOnlyStatus :: A.ToJSON j =>
Status -> j -> Response
jsonOnlyStatus s i =
responseLBS s [("Content-Type", "application/json")] $ A.encode i
jsonpOnly :: A.ToJSON j =>
j -> Response
jsonpOnly i =
responseLBS status200 [("Content-Type", "application/javascript")] $ A.encode i
jsonpOnlyStatus :: A.ToJSON j =>
Status -> j -> Response
jsonpOnlyStatus s i =
responseLBS s [("Content-Type", "application/javascript")] $ A.encode i
jsonOnlyHeaders :: A.ToJSON j =>
RequestHeaders -> j -> Response
jsonOnlyHeaders hs i =
responseLBS status200 hs $ A.encode i
jsonOnlyStatusHeaders :: A.ToJSON j =>
Status -> RequestHeaders -> j -> Response
jsonOnlyStatusHeaders s hs i =
responseLBS s hs $ A.encode i