module Network.HTTP.Client.Lens
(
method
, secure
, host
, port
, path
, queryString
, requestBody
, requestHeaders
, proxy
, hostAddress
, rawBody
, decompress
, redirectCount
, checkResponse
, responseTimeout
, cookieJar
, requestVersion
, onRequestBodyException
, requestManagerOverride
) where
import Control.Exception (SomeException)
import Data.ByteString (ByteString)
import qualified Network.HTTP.Client as H
import qualified Network.HTTP.Client.Internal as H
import qualified Network.HTTP.Types as H
import Network.Socket (HostAddress)
import Network.HTTP.Client.Lens.Internal
method :: Lens' H.Request H.Method
method f req = f (H.method req) <&> \m' -> req { H.method = m' }
secure :: Lens' H.Request Bool
secure f req = f (H.secure req) <&> \s' -> req { H.secure = s' }
host :: Lens' H.Request ByteString
host f req = f (H.host req) <&> \h' -> req { H.host = h' }
port :: Lens' H.Request Int
port f req = f (H.port req) <&> \p' -> req { H.port = p' }
path :: Lens' H.Request ByteString
path f req = f (H.path req) <&> \p' -> req { H.path = p' }
queryString :: Lens' H.Request ByteString
queryString f req = f (H.queryString req) <&> \qs' -> req { H.queryString = qs' }
requestHeaders :: Lens' H.Request H.RequestHeaders
requestHeaders f req = f (H.requestHeaders req) <&> \rh' -> req { H.requestHeaders = rh' }
requestBody :: Lens' H.Request H.RequestBody
requestBody f req = f (H.requestBody req) <&> \rb' -> req { H.requestBody = rb' }
proxy :: Lens' H.Request (Maybe H.Proxy)
proxy f req = f (H.proxy req) <&> \mp' -> req { H.proxy = mp' }
hostAddress :: Lens' H.Request (Maybe HostAddress)
hostAddress f req = f (H.hostAddress req) <&> \ha' -> req { H.hostAddress = ha' }
rawBody :: Lens' H.Request Bool
rawBody f req = f (H.rawBody req) <&> \b' -> req { H.rawBody = b' }
decompress :: Lens' H.Request (ByteString -> Bool)
decompress f req = f (H.decompress req) <&> \btb' -> req { H.decompress = btb' }
redirectCount :: Lens' H.Request Int
redirectCount f req = f (H.redirectCount req) <&> \rc' -> req { H.redirectCount = rc' }
checkResponse :: Lens' H.Request (H.Request -> H.Response H.BodyReader -> IO ())
checkResponse f req = f (H.checkResponse req) <&> \cr' -> req { H.checkResponse = cr' }
responseTimeout :: Lens' H.Request H.ResponseTimeout
responseTimeout f req = f (H.responseTimeout req) <&> \rt' -> req { H.responseTimeout = rt' }
cookieJar :: Lens' H.Request (Maybe H.CookieJar)
cookieJar f req = f (H.cookieJar req) <&> \mcj' -> req { H.cookieJar = mcj' }
requestVersion :: Lens' H.Request H.HttpVersion
requestVersion f req = f (H.requestVersion req) <&> \rv' -> req { H.requestVersion = rv' }
onRequestBodyException :: Lens' H.Request (SomeException -> IO ())
onRequestBodyException f req = f (H.onRequestBodyException req) <&> \cb -> req { H.onRequestBodyException = cb }
requestManagerOverride :: Lens' H.Request (Maybe H.Manager)
requestManagerOverride f req = f (H.requestManagerOverride req) <&> \m' -> req { H.requestManagerOverride = m' }