@@ -8,11 +8,8 @@
8{-# LANGUAGE OverloadedStrings #-}
8{-# LANGUAGE OverloadedStrings #-}
9{-# LANGUAGE ScopedTypeVariables #-}
9{-# LANGUAGE ScopedTypeVariables #-}
10{-# LANGUAGE TypeFamilies #-}
10{-# LANGUAGE TypeFamilies #-}
12−-- | @http-client@-based client requests executor
13module Servant.Client.Internal.HttpClient where
11module Servant.Client.Internal.HttpClient where
16import Prelude ()
13import Prelude ()
17import Prelude.Compat
14import Prelude.Compat
@@ -31,7 +28,7 @@ import qualified Data.ByteString.Lazy as BSL
31import Data.Foldable (toList, for_)
28import Data.Foldable (toList, for_)
32import Data.Functor.Alt (Alt (..))
29import Data.Functor.Alt (Alt (..))
33import Data.Maybe (maybeToList)
30import Data.Maybe (maybeToList)
34−import Data.Monoid ((<>))
31+import Data.Semigroup ((<>))
35import Data.Proxy (Proxy (..))
32import Data.Proxy (Proxy (..))
36import Data.Sequence (fromList)
33import Data.Sequence (fromList)
37import Data.String (fromString)
34import Data.String (fromString)
@@ -151,10 +148,10 @@ performStreamingRequest req = do
151 status_code = statusCode status
148 status_code = statusCode status
152 unless (status_code >= 200 && status_code < 300) $ do
149 unless (status_code >= 200 && status_code < 300) $ do
153 b <- BSL.fromChunks <$> Client.brConsume (Client.responseBody r)
150 b <- BSL.fromChunks <$> Client.brConsume (Client.responseBody r)
154− throw $ FailureResponse $ Response status b (fromList $ Client.responseHeaders r) (Client.responseVersion r)
151+ throw $ FailureResponse $ clientResponseToResponse r { Client.responseBody = b }
155− k (status, fromList $ Client.responseHeaders r, Client.responseVersion r, Client.responseBody r)
152+ k (clientResponseToResponse r)
157−clientResponseToResponse :: Client.Response BSL.ByteString -> Response
154+clientResponseToResponse :: Client.Response a -> GenResponse a
158clientResponseToResponse r = Response
155clientResponseToResponse r = Response
159 { responseStatusCode = Client.responseStatus r
156 { responseStatusCode = Client.responseStatus r
160 , responseBody = Client.responseBody r
157 , responseBody = Client.responseBody r