@@ -3,7 +3,6 @@ module Web.Tracking.Headers where
3import Web.Tracking.Internal
3import Web.Tracking.Internal
5import qualified Data.ByteString.Char8 as ByteString
5import qualified Data.ByteString.Char8 as ByteString
6−import Network.HTTP.Types
7import Network.Wai
6import Network.Wai
8import Text.Read (readMaybe)
7import Text.Read (readMaybe)
@@ -18,13 +17,7 @@ parseTrackingHeaders req = ReqtrackInfo <$> reqId
19addTrackingHeaders :: ReqtrackInfo -> Response -> Response
18addTrackingHeaders :: ReqtrackInfo -> Response -> Response
20addTrackingHeaders rti = mapResponseHeaders f
19addTrackingHeaders rti = mapResponseHeaders f
21− where headers :: ResponseHeaders
20+ where f hdrs = mkTrackingHeaders rti ++ removeTrackingHeaders hdrs
22− headers = [ (requestIdHdr, requestId rti)
23− , (requestLevelHdr, ByteString.pack (show (requestLevel rti)))
24− , (requestSourceHdr, requestSource rti)
26− filterHdrs = filter (\(hdr,_) -> hdr `notElem` [requestIdHdr, requestLevelHdr, requestSourceHdr])
27− f hdrs = headers ++ filterHdrs hdrs
29trackingMiddleware :: (ReqtrackInfo -> IO ()) -> Middleware
22trackingMiddleware :: (ReqtrackInfo -> IO ()) -> Middleware
30trackingMiddleware f app req resp
23trackingMiddleware f app req resp