DAV 1.3 → 1.3.1
raw patch · 2 files changed
+25/−3 lines, 2 filesdep ~http-clientPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: http-client
API changes (from Hackage documentation)
Files
- DAV.cabal +2/−2
- Network/Protocol/HTTP/DAV.hs +23/−1
DAV.cabal view
@@ -1,5 +1,5 @@ name: DAV-version: 1.3+version: 1.3.1 synopsis: RFC 4918 WebDAV support description: This is a library for the Web Distributed Authoring and Versioning@@ -93,4 +93,4 @@ source-repository this type: git location: git://anonscm.debian.org/users/clint/DAV.git- tag: DAV/1.3+ tag: DAV/1.3.1
Network/Protocol/HTTP/DAV.hs view
@@ -77,7 +77,12 @@ import Data.Maybe (catMaybes, fromMaybe) -import Network.HTTP.Client (RequestBody(..), httpLbs, parseUrl, applyBasicAuth, Request(..), Response(..), newManager, HttpException(..), BodyReader, withResponse, path)+#if MIN_VERSION_http_client(0,5,0)+import Network.HTTP.Client (defaultRequest, HttpExceptionContent(StatusCodeException), parseUrlThrow, responseTimeoutDefault, responseTimeoutMicro)+#else+import Network.HTTP.Client (parseUrl)+#endif+import Network.HTTP.Client (RequestBody(..), httpLbs, applyBasicAuth, Request(..), Response(..), newManager, HttpException(..), BodyReader, withResponse, path) import Network.HTTP.Client.TLS (tlsManagerSettings) import Network.HTTP.Types (hContentType, Method, Status, RequestHeaders, conflict409) @@ -88,7 +93,11 @@ import Data.CaseInsensitive (mk) instance Default DAVContext where+#if MIN_VERSION_http_client(0,5,0)+ def = DAVContext [] defaultRequest B.empty B.empty [] Nothing def Nothing "hDav-using application"+#else def = DAVContext [] def B.empty B.empty [] Nothing def Nothing "hDav-using application"+#endif newtype DAVT m a = DAVT { runDAVT :: ExceptT String (StateT DAVContext m) a } deriving (Alternative, Applicative, Functor, Monad, MonadBase b, MonadError String, MonadFix, MonadIO, MonadPlus, MonadState DAVContext)@@ -114,7 +123,11 @@ mkDAVContext :: MonadIO m => DAVURL -> m DAVContext mkDAVContext u = liftIO $ do mgr <- liftIO $ newManager tlsManagerSettings+#if MIN_VERSION_http_client(0,5,0)+ req <- liftIO $ parseUrlThrow u+#else req <- liftIO $ parseUrl u+#endif return $ def { _baseRequest = req, _httpManager = Just mgr } {-# DEPRECATED closeDAVContext "deprecated because http-client deprecated closeManager" #-}@@ -137,7 +150,11 @@ setUserAgent ua = userAgent .= ua setResponseTimeout :: MonadIO m => Maybe Int -> DAVT m ()+#if MIN_VERSION_http_client(0,5,0)+setResponseTimeout rt = baseRequest %= \x -> x { responseTimeout = maybe responseTimeoutDefault responseTimeoutMicro rt }+#else setResponseTimeout rt = baseRequest %= \x -> x { responseTimeout = rt }+#endif mkDavRequest :: MonadIO m => Method -> RequestHeaders -> RequestBody -> DAVT m Request mkDavRequest meth addlhdrs rbody = do@@ -160,8 +177,13 @@ maybe (DAVT $ throwE "Can't perform request without manager") (liftIO . httpLbs req) (ctx ^. httpManager) matchStatusCodeException :: Status -> HttpException -> Maybe ()+#if MIN_VERSION_http_client(0,5,0)+matchStatusCodeException want (HttpExceptionRequest _ (StatusCodeException resp _))+ | responseStatus resp == want = Just ()+#else matchStatusCodeException want (StatusCodeException s _ _) | s == want = Just ()+#endif | otherwise = Nothing matchStatusCodeException _ _ = Nothing