git.iko.soy/typeable/servant
on 8574d8d help sign in
4 files changed+21−4
since splitsnapshots
unifiedsplit
servant-client/CHANGELOG.md+6 servant-client/servant-client.cabal+1−1 servant-client/src/Servant/Client/Internal/HttpClient.hs+13−2 servant/CHANGELOG.md+1−1
servant-client/CHANGELOG.md+6
@@ -1,6 +1,12 @@
11[The latest version of this document is on GitHub.](https://github.com/haskell-servant/servant/blob/master/servant-client/CHANGELOG.md)
22[Changelog for `servant` package contains significant entries for all core packages.](https://github.com/haskell-servant/servant/blob/master/servant/CHANGELOG.md)
33
4+0.12.0.1
5+--------
6+
7+- Send `Accept` header.
8+ ([#858](https://github.com/haskell-servant/servant/issues/858))
9+
4100.12
511----
612
servant-client/servant-client.cabal+1−1
@@ -1,5 +1,5 @@
11name: servant-client
2−version: 0.12
2+version: 0.12.0.1
33synopsis: automatical derivation of querying functions for servant webservices
44description:
55 This library lets you derive automatically Haskell functions that
servant-client/src/Servant/Client/Internal/HttpClient.hs+13−2
@@ -28,6 +28,7 @@ import Data.ByteString.Builder (toLazyByteString)
2828import qualified Data.ByteString.Lazy as BSL
2929import Data.Foldable (toList)
3030import Data.Functor.Alt (Alt (..))
31+import Data.Maybe (maybeToList)
3132import Data.Monoid ((<>))
3233import Data.Proxy (Proxy (..))
3334import Data.Sequence (fromList)
@@ -133,16 +134,26 @@ requestToClientRequest burl r = Client.defaultRequest
133134 <> toLazyByteString (requestPath r)
134135 , Client.queryString = renderQuery True . toList $ requestQueryString r
135136 , Client.requestHeaders =
136− let orig = toList $ requestHeaders r
137− in maybe orig (: orig) contentTypeHdr
137+ maybeToList acceptHdr ++ maybeToList contentTypeHdr ++ headers
138138 , Client.requestBody = body
139139 , Client.secure = isSecure
140140 }
141141 where
142+ -- Content-Type and Accept are specified by requestBody and requestAccept
143+ headers = filter (\(h, _) -> h /= "Accept" && h /= "Content-Type") $
144+ toList $requestHeaders r
145+
146+ acceptHdr
147+ | null hs = Nothing
148+ | otherwise = Just ("Accept", renderHeader hs)
149+ where
150+ hs = toList $ requestAccept r
151+
142152 (body, contentTypeHdr) = case requestBody r of
143153 Nothing -> (Client.RequestBodyLBS "", Nothing)
144154 Just (RequestBodyLBS body', typ)
145155 -> (Client.RequestBodyLBS body', Just (hContentType, renderHeader typ))
156+
146157 isSecure = case baseUrlScheme burl of
147158 Http -> False
148159 Https -> True
servant/CHANGELOG.md+1−1
@@ -59,7 +59,7 @@
5959- Lower `:>` and `:<|>` infix precedence to 4 and 3 respectively
6060 ([#761](https://github.com/haskell-servant/servant/issues/761))
6161
62− This should affect you, except if you define your own infix operators
62+ This shouldn't affect you, except if you define your own infix operators
6363 for Servant type-level DSL.
6464
6565### Other changes