module Jenkins.REST.Lens
(
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
method :: Lens' (H.Request m) H.Method
method f req = (\m' -> req { H.method = m' }) <$> f (H.method req)
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)
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)
redirectCount :: Lens' (H.Request m) Int
redirectCount f req = (\rc' -> req { H.redirectCount = rc' }) <$> f (H.redirectCount req)
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)
responseTimeout :: Lens' (H.Request m) (Maybe Int)
responseTimeout f req = (\rt' -> req { H.responseTimeout = rt' }) <$> f (H.responseTimeout req)