on master help sign in
Add 'headerRedacted'
d053507Ivo Stefchev
CHANGELOG.md+5
@@ -1,3 +1,8 @@
1+## Req 3.13.0
2+
3+* Add `headerRedacted` function to add header fields, which will be with
4+ redacted values on print.
5+
1## Req 3.12.0
6## Req 3.12.0
2
7
3* Add `isStatusCodeException` function.
8* Add `isStatusCodeException` function.
Network/HTTP/Req.hs+10
@@ -161,6 +161,7 @@ module Network.HTTP.Req
161 -- *** Headers
161 -- *** Headers
162 header,
162 header,
163 attachHeader,
163 attachHeader,
164+ headerRedacted,
164
165
165 -- *** Cookies
166 -- *** Cookies
166 -- $cookies
167 -- $cookies
@@ -255,6 +256,7 @@ import qualified Data.List.NonEmpty as NE
255import Data.Maybe (fromMaybe)
256import Data.Maybe (fromMaybe)
256import Data.Proxy
257import Data.Proxy
257import Data.Semigroup (Endo (..))
258import Data.Semigroup (Endo (..))
259+import qualified Data.Set as S
258import Data.Text (Text)
260import Data.Text (Text)
259import qualified Data.Text as T
261import qualified Data.Text as T
260import qualified Data.Text.Encoding as T
262import qualified Data.Text.Encoding as T
@@ -1561,6 +1563,14 @@ attachHeader :: ByteString -> ByteString -> L.Request -> L.Request
1561attachHeader name value x =
1563attachHeader name value x =
1562 x {L.requestHeaders = (CI.mk name, value) : L.requestHeaders x}
1564 x {L.requestHeaders = (CI.mk name, value) : L.requestHeaders x}
1563
1565
1566+-- | Same as 'header', but with redacted values on print.
1567+--
1568+-- @since 3.13.0
1569+headerRedacted :: ByteString -> ByteString -> Option scheme
1570+headerRedacted name value = withRequest $ \x ->
1571+ let y = attachHeader name value x
1572+ in y {L.redactHeaders = CI.mk name `S.insert` L.redactHeaders y}
1573+
1564----------------------------------------------------------------------------
1574----------------------------------------------------------------------------
1565-- Request—Optional parameters—Cookies
1575-- Request—Optional parameters—Cookies
1566
1576
req.cabal+2−1
@@ -40,9 +40,10 @@ library
40 bytestring >=0.10.8 && <0.12,
40 bytestring >=0.10.8 && <0.12,
41 case-insensitive >=0.2 && <1.3,
41 case-insensitive >=0.2 && <1.3,
42 connection >=0.2.2 && <0.4,
42 connection >=0.2.2 && <0.4,
43+ containers >=0.5 && <0.7,
43 exceptions >=0.6 && <0.11,
44 exceptions >=0.6 && <0.11,
44 http-api-data >=0.2 && <0.6,
45 http-api-data >=0.2 && <0.6,
45− http-client >=0.7 && <0.8,
46+ http-client >=0.7.13.1 && <0.8,
46 http-client-tls >=0.3.2 && <0.4,
47 http-client-tls >=0.3.2 && <0.4,
47 http-types >=0.8 && <10.0,
48 http-types >=0.8 && <10.0,
48 modern-uri >=0.3 && <0.4,
49 modern-uri >=0.3 && <0.4,