packages feed

named-servant-client 0.0.2 → 0.1.0

raw patch · 3 files changed

+35/−25 lines, 3 filesdep ~nameddep ~named-servantdep ~servant

Dependency ranges changed: named, named-servant, servant, servant-client-core

Files

named-servant-client.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: named-servant-client-version: 0.0.2+version: 0.1.0 synopsis: client support for named-servant maintainer: kristof@resonata.be copyright: Kristof Bastiaensen 2020@@ -22,7 +22,7 @@         src    build-depends:         base >= 4.7 && < 5,-        servant,-        servant-client-core,-        named-servant,-        named+        servant >= 0.17 && < 0.18,+        servant-client-core >= 0.17 && < 0.18,+        named-servant == 0.0.3,+        named >= 0.3 && < 0.5
src/Servant/Client/Named.hs view
@@ -17,21 +17,31 @@ import Servant.API.Modifiers import Data.Proxy import GHC.TypeLits+import Data.Maybe import Data.Functor.Identity import Named  unarg :: NamedF f a name -> f a unarg (ArgF a) = a +-- | type family to rewrite a named queryparam to a regular+-- queryparam.  Useful to define instances for classes that extract+-- information from the API type., for example servant-foreign, or+-- servant-swagger.+type family UnNameParam x where+  UnNameParam (NamedQueryParams sym a) = QueryParams sym a+  UnNameParam (NamedQueryParam' mods sym a) = QueryParam' mods sym a+  UnNameParam (NamedQueryFlag sym) = QueryFlag sym+ instance (KnownSymbol sym, ToHttpApiData a, HasClient m api)       => HasClient m (NamedQueryParams sym a :> api) where    type Client m (NamedQueryParams sym a :> api) =-    sym :! [a] -> Client m api+    sym :? [a] -> Client m api -  clientWithRoute pm Proxy req (Arg paramlist) =-    clientWithRoute pm (Proxy :: Proxy (QueryParams sym a :> api)) req-                    paramlist+  clientWithRoute pm Proxy req (ArgF paramlist) =+    clientWithRoute pm (Proxy :: Proxy (QueryParams sym a :> api)) req $+                    fromMaybe [] paramlist                        hoistClientMonad pm _ f cl as =     hoistClientMonad pm (Proxy :: Proxy api) f (cl as)
src/Servant/Client/Record.hs view
@@ -25,7 +25,7 @@  instance ( RunClient m          , Generic a-         , GHasClient m (Rep a ()) api) =>+         , GHasClient m (Rep a) api) =>          HasClient m (RecordParam a :> api)   where     type Client m (RecordParam a :> api) = a -> Client m api@@ -39,28 +39,28 @@  data GParam a -class GHasClient m a api where+class GHasClient m (a :: * -> *) api where   gClientWithRoute :: RunClient m-                   => Proxy m -> Proxy api -> Request -> a -> Client m api+                   => Proxy m -> Proxy api -> Request -> a () -> Client m api   gHoistClientMonad :: RunClient m                     => Proxy m                     -> Proxy api                     -> (forall x. mon x -> mon' x)-                    -> (a -> Client mon api)-                    -> (a -> Client mon' api)+                    -> (a () -> Client mon api)+                    -> (a () -> Client mon' api)  instance ( RunClient m          , GHasClient m a api          ) =>-         HasClient m (GParam a :> api) where-  type Client m (GParam a :> api) = a -> Client m api+         HasClient m (GParam (a ()) :> api) where+  type Client m (GParam (a ()) :> api) = a () -> Client m api   clientWithRoute pm _ = gClientWithRoute pm (Proxy :: Proxy api)   {-# INLINE clientWithRoute #-}   hoistClientMonad pm _ = gHoistClientMonad pm (Proxy :: Proxy api)   {-# INLINE hoistClientMonad #-} -instance GHasClient m (c m2 ()) api =>-         GHasClient m (D1 m3 (c m2) ()) api where+instance GHasClient m c api =>+         GHasClient m (D1 m3 c) api where   gClientWithRoute pm _ req (M1 x) =     gClientWithRoute pm (Proxy :: Proxy api) req x   {-# INLINE gClientWithRoute #-}@@ -68,8 +68,8 @@     gHoistClientMonad pm (Proxy :: Proxy api) f (cl . M1) (unM1 x)   {-# INLINE gHoistClientMonad #-} -instance GHasClient m (a ()) (GParam (b ()) :> api)-         => GHasClient m ((a :*: b) ()) api where+instance GHasClient m a (GParam (b ()) :> api)+         => GHasClient m (a :*: b) api where   gClientWithRoute pm _ req (x :*: y) =     gClientWithRoute pm (Proxy :: Proxy (GParam (b ()) :> api)) req x y   {-# INLINE gClientWithRoute #-}@@ -78,7 +78,7 @@     (\x' y'-> cl (x' :*: y')) x y   {-# INLINE gHoistClientMonad #-} -instance GHasClient m (a ()) api => GHasClient m (C1 mon a ()) api where+instance GHasClient m a api => GHasClient m (C1 mon a) api where   gClientWithRoute pm _ req (M1 x) =     gClientWithRoute pm (Proxy :: Proxy api) req x   {-# INLINE gClientWithRoute #-}@@ -90,7 +90,7 @@   ( HasClient m api   , KnownSymbol sym   ) =>-  GHasClient m (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 Bool) ()) api where+  GHasClient m (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 Bool)) api where   gClientWithRoute pm _ req (M1 (K1 x)) =     clientWithRoute pm (Proxy :: Proxy (QueryFlag sym :> api)) req x   {-# INLINE gClientWithRoute #-}@@ -104,7 +104,7 @@   , HasClient m api   , KnownSymbol sym   ) =>-  GHasClient m (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 [a]) ()) api where+  GHasClient m (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 [a])) api where   gClientWithRoute pm _ req (M1 (K1 x)) =     clientWithRoute pm (Proxy :: Proxy (QueryParams sym a :> api)) req x   {-# INLINE gClientWithRoute #-}@@ -120,7 +120,7 @@   , KnownSymbol sym   ) =>   GHasClient m-             (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 (Maybe a)) ())+             (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 (Maybe a)))              api where   gClientWithRoute pm _ req (M1 (K1 x)) =     clientWithRoute@@ -144,7 +144,7 @@   , KnownSymbol sym   ) =>   GHasClient m-             (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 a) ())+             (S1 ('MetaSel ('Just sym) d1 d2 d3) (Rec0 a))              api where   gClientWithRoute pm _ req (M1 (K1 x)) =     clientWithRoute