@@ -1,13 +1,17 @@
11{-# LANGUAGE FlexibleContexts #-}
22{-# LANGUAGE MultiParamTypeClasses #-}
3+{-# LANGUAGE OverloadedStrings #-}
34{-# LANGUAGE ScopedTypeVariables #-}
45{-# LANGUAGE TypeFamilies #-}
5−{-# LANGUAGE OverloadedStrings #-}
66-- | Types for possible backends to run client-side `Request` queries
77module Servant.Client.Core.Internal.RunClient where
88
9+import Prelude.Compat
10+import Prelude ()
11+
912import Control.Monad (unless)
1013import Control.Monad.Error.Class (MonadError, throwError)
14+import Data.Foldable (toList)
1115import Data.Proxy (Proxy)
1216import qualified Data.Text as T
1317import Network.HTTP.Media (MediaType, matches,
@@ -17,7 +21,6 @@ import Servant.API (MimeUnrender,
1721 mimeUnrender)
1822import Servant.Client.Core.Internal.Request (Request, Response (..),
1923 ServantError (..))
20−import Data.Foldable (toList)
2124
2225class (MonadError ServantError m) => RunClient m where
2326 -- | How to make a request.
@@ -26,10 +29,10 @@ class (MonadError ServantError m) => RunClient m where
2629checkContentTypeHeader :: RunClient m => Response -> m MediaType
2730checkContentTypeHeader response =
2831 case lookup "Content-Type" $ toList $ responseHeaders response of
29− Nothing -> pure $ "application"//"octet-stream"
32+ Nothing -> return $ "application"//"octet-stream"
3033 Just t -> case parseAccept t of
3134 Nothing -> throwError $ InvalidContentTypeHeader response
32− Just t' -> pure t'
35+ Just t' -> return t'
3336
3437decodedAs :: forall ct a m. (MimeUnrender ct a, RunClient m)
3538 => Response -> Proxy ct -> m a