libjenkins-0.1.0.0: src/Jenkins/REST/Lens.hs
-- | Lenses for 'Network.HTTP.Conduit' types
module Jenkins.REST.Lens
( -- * 'Request' lenses
method, secure
, host, port
, path, queryString, requestBody, requestHeaders
, redirectCount, checkStatus, responseTimeout
) where
import Control.Applicative ((<$>))
import Control.Exception (SomeException)
import Control.Lens
import Data.ByteString (ByteString)
import qualified Network.HTTP.Conduit as H
import qualified Network.HTTP.Types as H
-- | HTTP request method, eg GET, POST.
method :: Lens' (H.Request m) H.Method
method f req = (\m' -> req { H.method = m' }) <$> f (H.method req)
-- | Whether to use HTTPS (ie, SSL).
secure :: Lens' (H.Request m) Bool
secure f req = (\s' -> req { H.secure = s' }) <$> f (H.secure req)
host :: Lens' (H.Request m) ByteString
host f req = (\h' -> req { H.host = h' }) <$> f (H.host req)
port :: Lens' (H.Request m) Int
port f req = (\p' -> req { H.port = p' }) <$> f (H.port req)
-- | Everything from the host to the query string.
path :: Lens' (H.Request m) ByteString
path f req = (\p' -> req { H.path = p' }) <$> f (H.path req)
queryString :: Lens' (H.Request m) ByteString
queryString f req = (\qs' -> req { H.queryString = qs' }) <$> f (H.queryString req)
requestBody :: Lens' (H.Request m) (H.RequestBody m)
requestBody f req = (\rb' -> req { H.requestBody = rb' }) <$> f (H.requestBody req)
requestHeaders :: Lens' (H.Request m) H.RequestHeaders
requestHeaders f req = (\rh' -> req { H.requestHeaders = rh' }) <$> f (H.requestHeaders req)
-- | How many redirects to follow when getting a resource. 0 means follow no redirects. Default value: 10.
redirectCount :: Lens' (H.Request m) Int
redirectCount f req = (\rc' -> req { H.redirectCount = rc' }) <$> f (H.redirectCount req)
-- | Check the status code. Note that this will run after all redirects are performed.
-- Default: return a StatusCodeException on non-2XX responses.
checkStatus :: Lens' (H.Request m) (H.Status -> H.ResponseHeaders -> H.CookieJar -> Maybe SomeException)
checkStatus f req = (\cs' -> req { H.checkStatus = cs' }) <$> f (H.checkStatus req)
-- | Number of microseconds to wait for a response. If Nothing, will wait indefinitely. Default: 5 seconds.
responseTimeout :: Lens' (H.Request m) (Maybe Int)
responseTimeout f req = (\rt' -> req { H.responseTimeout = rt' }) <$> f (H.responseTimeout req)