diff --git a/lib/Servant/Ekg.hs b/lib/Servant/Ekg.hs index 5676aa5..c50c360 100644 --- a/lib/Servant/Ekg.hs +++ b/lib/Servant/Ekg.hs @@ -117,9 +117,11 @@ instance HasEndpoint (sub :: *) => HasEndpoint (Header' mods h a :> sub) where getEndpoint _ = getEndpoint (Proxy :: Proxy sub) enumerateEndpoints _ = enumerateEndpoints (Proxy :: Proxy sub) +#if MIN_VERSION_servant(0,18,2) instance HasEndpoint (sub :: *) => HasEndpoint (Fragment a :> sub) where getEndpoint _ = getEndpoint (Proxy :: Proxy sub) enumerateEndpoints _ = enumerateEndpoints (Proxy :: Proxy sub) +#endif instance HasEndpoint (sub :: *) => HasEndpoint (QueryParam' mods (h :: Symbol) a :> sub) where getEndpoint _ = getEndpoint (Proxy :: Proxy sub) @@ -183,6 +185,17 @@ instance ReflectMethod method => HasEndpoint (NoContentVerb method) where where method = reflectMethod (Proxy :: Proxy method) #endif +#if MIN_VERSION_servant(0,18,1) +instance ReflectMethod method => HasEndpoint (UVerb method contentType as) where + getEndpoint _ req = case pathInfo req of + [] | requestMethod req == method -> Just (APIEndpoint [] method) + _ -> Nothing + where method = reflectMethod (Proxy :: Proxy method) + + enumerateEndpoints _ = [APIEndpoint mempty method] + where method = reflectMethod (Proxy :: Proxy method) +#endif + instance ReflectMethod method => HasEndpoint (Stream method status framing ct a) where getEndpoint _ req = case pathInfo req of [] | requestMethod req == method -> Just (APIEndpoint [] method) diff --git a/servant-ekg.cabal b/servant-ekg.cabal index 5226cfc..5317167 100644 --- a/servant-ekg.cabal +++ b/servant-ekg.cabal @@ -25,15 +25,15 @@ library other-modules: Servant.Ekg.Internal hs-source-dirs: lib build-depends: - base >=4.9 && <4.15 - , ekg-core >=0.1.1.4 && <0.2 - , http-types >=0.12.2 && <0.13 - , hashable >=1.2.7.0 && <1.4 - , servant >=0.14 && <0.20 - , text >=1.2.3.0 && <1.3 - , time >=1.6.0.1 && <1.12 - , unordered-containers >=0.2.9.0 && <0.3 - , wai >=3.2.0 && <3.3 + base >=4.9 && <4.16 + , ekg-core >=0.1.1.4 && <0.2 + , http-types >=0.12.2 && <0.13 + , hashable >=1.2.7.0 && <1.4 + , servant >=0.14 && <0.20 + , text >=1.2.3.0 && <1.3 + , time >=1.6.0.1 && <1.12 + , unordered-containers >=0.2.9.0 && <0.3 + , wai >=3.2.0 && <3.3 default-language: Haskell2010