rest-client 0.5.1.0 → 0.5.1.1
raw patch · 3 files changed
+29/−10 lines, 3 filesdep +http-clientdep ~http-conduitdep ~http-typesPVP ok
version bump matches the API change (PVP)
Dependencies added: http-client
Dependency ranges changed: http-conduit, http-types
API changes (from Hackage documentation)
Files
- CHANGELOG.md +4/−0
- rest-client.cabal +6/−5
- src/Rest/Client/Internal.hs +19/−5
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Changelog +### 0.5.1.1++* Allow http-conduit 2.2.*+ ### 0.5.1.0 * Add `Functor (ApiResponse e)` instance
rest-client.cabal view
@@ -1,5 +1,5 @@ name: rest-client-version: 0.5.1.0+version: 0.5.1.1 description: Utility library for use in generated API client libraries. synopsis: Utility library for use in generated API client libraries. maintainer: code@silk.co@@ -28,9 +28,10 @@ , aeson-utils >= 0.2.1 && < 0.4 , bytestring >= 0.9 && < 0.11 , case-insensitive >= 0.4 && < 1.3- , data-default == 0.5.*+ , data-default >= 0.5 && < 0.8 , exceptions == 0.8.*- , http-conduit == 2.1.*+ , http-client >= 0.3 && < 0.6+ , http-conduit >= 2.1 && < 2.3 , http-types >= 0.7 && < 0.10 , hxt >= 9.2 && < 9.4 , hxt-pickle-utils == 0.1.*@@ -39,8 +40,8 @@ , resourcet >= 1.1.4 && < 1.2 , rest-types >= 1.13 && < 1.15 , tostring == 0.2.*- , transformers >= 0.3 && < 0.5+ , transformers >= 0.3 && < 0.6 , transformers-base >= 0.4.4 && < 0.5- , transformers-compat >= 0.3 && < 0.5+ , transformers-compat >= 0.3 && < 0.6 , uri-encode == 1.5.* , utf8-string >= 0.3 && < 1.1
src/Rest/Client/Internal.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE- FlexibleInstances+ CPP+ , FlexibleInstances , OverlappingInstances , OverloadedStrings , UndecidableInstances@@ -34,7 +35,9 @@ import Control.Monad import Control.Monad.Cont import Data.Aeson.Utils (FromJSON, ToJSON, eitherDecodeV, encode)+#if !MIN_VERSION_http_client(0,5,0) import Data.Default (def)+#endif import Data.List import Data.Monoid import Data.String@@ -68,16 +71,21 @@ ApiResponse { statusCode = HTTP.statusCode (responseStatus r) , statusMessage = HTTP.statusMessage (responseStatus r)- , httpVersion = (\v -> (httpMajor v, httpMinor v)) (responseVersion r)+ , httpVersion = (httpMajor &&& httpMinor) (responseVersion r) , responseHeaders = HTTP.responseHeaders r , responseBody = HTTP.responseBody r } +#if MIN_VERSION_http_client(0,5,0)+defaultTimeout :: ResponseTimeout+defaultTimeout = responseTimeoutMicro (1000 * 1000 * 60 * 5)+#else defaultTimeout :: Maybe Int defaultTimeout = Just (1000 * 1000 * 60 * 5)+#endif splitHost :: String -> (String, String)-splitHost hst = break (== '/') hst+splitHost = break (== '/') doRequest :: ApiStateC m => (L.ByteString -> Rest.Types.Error.Reason e) -> (L.ByteString -> a) -> ApiRequest -> m (ApiResponse e a) doRequest a b = liftM (parseResult a b) . doReq@@ -90,7 +98,11 @@ hds <- fmap headers askApiInfo jar <- fmap cookies getApiState let (h, p) = splitHost hst+#if MIN_VERSION_http_client(0,5,0)+ req = defaultRequest+#else req = def+#endif { HTTP.method = CH.pack m , host = CH.pack h , port = prt@@ -98,7 +110,9 @@ , queryString = (renderQuery False . simpleQueryToQuery . Prelude.map (CH.pack *** CH.pack)) ps , HTTP.requestHeaders = rhds ++ Prelude.map (fromString *** CH.pack) hds , HTTP.requestBody = RequestBodyLBS bd- , checkStatus = (\_ _ _ -> Nothing)+#if !MIN_VERSION_http_client(0,5,0)+ , checkStatus = \_ _ _ -> Nothing+#endif , redirectCount = 0 , responseTimeout = defaultTimeout , cookieJar = Just jar@@ -143,5 +157,5 @@ makeReq :: String -> String -> [[String]] -> [(String, String)] -> Network.HTTP.Types.Header.RequestHeaders -> L.ByteString -> ApiRequest-makeReq meth v ls pList hs body = ApiRequest meth (intercalate "/" (v : map URI.encode (concat ls))) pList hs body+makeReq meth v ls = ApiRequest meth (intercalate "/" (v : map URI.encode (concat ls)))