git.iko.soy/typeable/servant
on master help sign in
Make Link take a Maybe argument for MatrixParam, just like QueryParam
commit0e22d19800514f14ca838257b2debb809e7ef939 authorAlp Mestanogullari <alpmestan@gmail.com> dateFri 19 Jun 2015, 11:30 (11 years ago) parent8232824
2 files changed+4−4
servant/src/Servant/Utils/Links.hs+3−3 servant/test/Servant/Utils/LinksSpec.hs+1−1
servant/src/Servant/Utils/Links.hs+3−3
@@ -303,10 +303,10 @@ instance (KnownSymbol sym, HasLink sub)
303303-- MatrixParam instances
304304instance (KnownSymbol sym, ToText v, HasLink sub)
305305 => HasLink (MatrixParam sym v :> sub) where
306− type MkLink (MatrixParam sym v :> sub) = v -> MkLink sub
307− toLink _ l v =
306+ type MkLink (MatrixParam sym v :> sub) = Maybe v -> MkLink sub
307+ toLink _ l mv =
308308 toLink (Proxy :: Proxy sub) $
309− addMatrixParam (SingleParam k (toText v)) l
309+ maybe id (addMatrixParam . SingleParam k . toText) mv l
310310 where
311311 k = symbolVal (Proxy :: Proxy sym)
312312
servant/test/Servant/Utils/LinksSpec.hs+1−1
@@ -67,7 +67,7 @@ spec = describe "Servant.Utils.Links" $ do
6767 :> "child"
6868 :> MatrixParam "gender" String
6969 :> Get '[JSON] String)
70− apiLink l3 ["Hubert?x=;&", "Cumberdale"] "Edward?"
70+ apiLink l3 ["Hubert?x=;&", "Cumberdale"] (Just "Edward?")
7171 `shouldBeURI` "parent;name[]=Hubert%3Fx%3D%3B%26;\
7272 \name[]=Cumberdale/child;gender=Edward%3F"
7373