git.iko.soy/typeable/servant
on master help sign in
use queryString not rawQueryString, enables param rewrites with Middleware possible
28c4533Ilia Rodionov
servant-server/src/Servant/Server/Internal.hs+5−5
@@ -64,7 +64,7 @@ import Network.Socket
64 (SockAddr)
64 (SockAddr)
65import Network.Wai
65import Network.Wai
66 (Application, Request, httpVersion, isSecure, lazyRequestBody,
66 (Application, Request, httpVersion, isSecure, lazyRequestBody,
67− rawQueryString, remoteHost, requestBody, requestHeaders,
67+ queryString, remoteHost, requestBody, requestHeaders,
68 requestMethod, responseLBS, responseStream, vault)
68 requestMethod, responseLBS, responseStream, vault)
69import Prelude ()
69import Prelude ()
70import Prelude.Compat
70import Prelude.Compat
@@ -452,7 +452,7 @@ instance
452 hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
452 hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
453
453
454 route Proxy context subserver =
454 route Proxy context subserver =
455− let querytext req = parseQueryText $ rawQueryString req
455+ let querytext = queryToQueryText . queryString
456 paramname = cs $ symbolVal (Proxy :: Proxy sym)
456 paramname = cs $ symbolVal (Proxy :: Proxy sym)
457
457
458 parseParam :: Request -> DelayedIO (RequestArgument mods a)
458 parseParam :: Request -> DelayedIO (RequestArgument mods a)
@@ -519,8 +519,8 @@ instance (KnownSymbol sym, FromHttpApiData a, HasServer api context)
519 params :: [T.Text]
519 params :: [T.Text]
520 params = mapMaybe snd
520 params = mapMaybe snd
521 . filter (looksLikeParam . fst)
521 . filter (looksLikeParam . fst)
522− . parseQueryText
522+ . queryToQueryText
523− . rawQueryString
523+ . queryString
524 $ req
524 $ req
525
525
526 looksLikeParam name = name == paramname || name == (paramname <> "[]")
526 looksLikeParam name = name == paramname || name == (paramname <> "[]")
@@ -546,7 +546,7 @@ instance (KnownSymbol sym, HasServer api context)
546 hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
546 hoistServerWithContext _ pc nt s = hoistServerWithContext (Proxy :: Proxy api) pc nt . s
547
547
548 route Proxy context subserver =
548 route Proxy context subserver =
549− let querytext r = parseQueryText $ rawQueryString r
549+ let querytext = queryToQueryText . queryString
550 param r = case lookup paramname (querytext r) of
550 param r = case lookup paramname (querytext r) of
551 Just Nothing -> True -- param is there, with no value
551 Just Nothing -> True -- param is there, with no value
552 Just (Just v) -> examine v -- param with a value
552 Just (Just v) -> examine v -- param with a value