@@ -111,7 +111,7 @@ performRequest req = do
111111 Right response -> do
112112 let status = Client.responseStatus response
113113 status_code = statusCode status
114− ourResponse = clientResponseToReponse response
114+ ourResponse = clientResponseToResponse response
115115 unless (status_code >= 200 && status_code < 300) $
116116 throwError $ FailureResponse ourResponse
117117 return ourResponse
@@ -121,14 +121,18 @@ performStreamingRequest req = do
121121 m <- asks manager
122122 burl <- asks baseUrl
123123 let request = requestToClientRequest burl req
124−
125124 return $ StreamingResponse $
126125 \k -> Client.withResponse request m $
127− \r ->
128− k (Client.responseStatus r, fromList $ Client.responseHeaders r, Client.responseVersion r, Client.responseBody r)
126+ \r -> do
127+ let status = Client.responseStatus r
128+ status_code = statusCode status
129+ unless (status_code >= 200 && status_code < 300) $ do
130+ b <- BSL.fromChunks <$> Client.brConsume (Client.responseBody r)
131+ throw $ FailureResponse $ Response status b (fromList $ Client.responseHeaders r) (Client.responseVersion r)
132+ k (status, fromList $ Client.responseHeaders r, Client.responseVersion r, Client.responseBody r)
129133
130−clientResponseToReponse :: Client.Response BSL.ByteString -> Response
131−clientResponseToReponse r = Response
134+clientResponseToResponse :: Client.Response BSL.ByteString -> Response
135+clientResponseToResponse r = Response
132136 { responseStatusCode = Client.responseStatus r
133137 , responseBody = Client.responseBody r
134138 , responseHeaders = fromList $ Client.responseHeaders r