module Network.HTTP.Dispatch.Dispatch
( raw
, get
, post
, put
, patch
, delete
) where
import qualified Data.ByteString as S
import qualified Network.HTTP.Dispatch.Request as Dispatch
import Network.HTTP.Dispatch.Internal.Request (runRequest)
import Network.HTTP.Dispatch.Types
raw
:: HTTPRequestMethod
-> String
-> [(String, String)]
-> Maybe S.ByteString
-> IO HTTPResponse
raw method url headers body =
let byteStringHeaders = transformHeaders headers in
runRequest $ Dispatch.rawRequest method url byteStringHeaders body
get
:: String
-> [(String, String)]
-> IO HTTPResponse
get url headers = raw GET url headers Nothing
post
:: String
-> [(String, String)]
-> Maybe S.ByteString
-> IO HTTPResponse
post url headers body = raw POST url headers body
put
:: String
-> [(String, String)]
-> Maybe S.ByteString
-> IO HTTPResponse
put url headers body = raw PUT url headers body
patch
:: String
-> [(String, String)]
-> Maybe S.ByteString
-> IO HTTPResponse
patch url headers body = raw PATCH url headers body
delete
:: String
-> [(String, String)]
-> IO HTTPResponse
delete url headers = raw DELETE url headers Nothing