module Network.HTTP.Dispatch.Core
( HTTPRequest(..)
, HTTPResponse(..)
, HTTPRequestMethod(..)
, runRequest
, get
, getWithHeaders
, post
, postWithHeaders
, put
, putWithHeaders
, patch
, patchWithHeaders
, delete
, deleteWithHeaders
) where
import qualified Data.ByteString.Lazy as LBS
import Network.HTTP.Dispatch.Request
import Network.HTTP.Dispatch.Types
type Url = String
type Headers = [Header]
type Body = LBS.ByteString
get :: Url -> HTTPRequest
get url = HTTPRequest GET url [] Nothing
getWithHeaders :: String -> [Header] -> HTTPRequest
getWithHeaders url headers = HTTPRequest GET url headers Nothing
post :: Url -> Body -> HTTPRequest
post url body = postWithHeaders url [] body
postWithHeaders :: Url -> Headers -> Body -> HTTPRequest
postWithHeaders url headers body = HTTPRequest POST url headers (Just body)
put :: Url -> Body -> HTTPRequest
put url body = putWithHeaders url [] body
putWithHeaders :: Url -> Headers -> Body -> HTTPRequest
putWithHeaders url headers body = HTTPRequest PUT url headers (Just body)
patch :: Url -> Body -> HTTPRequest
patch url body = patchWithHeaders url [] body
patchWithHeaders :: Url -> Headers -> Body -> HTTPRequest
patchWithHeaders url headers body = HTTPRequest PATCH url headers (Just body)
delete :: Url -> HTTPRequest
delete url = deleteWithHeaders url []
deleteWithHeaders :: Url -> Headers -> HTTPRequest
deleteWithHeaders url headers = HTTPRequest DELETE url headers Nothing