packages feed

webgear-server 1.2.0 → 1.3.0

raw patch · 11 files changed

+42/−36 lines, 11 filesdep ~QuickCheckdep ~tasty-quickcheckdep ~webgear-core

Dependency ranges changed: QuickCheck, tasty-quickcheck, webgear-core

Files

CHANGELOG.md view
@@ -2,6 +2,11 @@  ## [Unreleased] +## [1.3.0] - 2024-06-13++### Changed+- Simplify core API (breaking change) (#47)+ ## [1.2.0] - 2024-03-18  ### Added@@ -82,7 +87,8 @@ - Automated tests - Documentation -[Unreleased]: https://github.com/haskell-webgear/webgear/compare/v1.2.0...HEAD+[Unreleased]: https://github.com/haskell-webgear/webgear/compare/v1.3.0...HEAD+[1.3.0]: https://github.com/haskell-webgear/webgear/releases/tag/v1.3.0 [1.2.0]: https://github.com/haskell-webgear/webgear/releases/tag/v1.2.0 [1.1.1]: https://github.com/haskell-webgear/webgear/releases/tag/v1.1.1 [1.1.0]: https://github.com/haskell-webgear/webgear/releases/tag/v1.1.0
src/WebGear/Server/Trait/Auth/Basic.hs view
@@ -26,7 +26,7 @@  ) import WebGear.Server.Handler (ServerHandler) -instance (Monad m) => Get (ServerHandler m) (BasicAuth' Required scheme m e a) Request where+instance (Monad m) => Get (ServerHandler m) (BasicAuth' Required scheme m e a) where   {-# INLINE getTrait #-}   getTrait ::     (HasTrait (AuthorizationHeader scheme) ts) =>@@ -53,7 +53,7 @@         res <- toBasicAttribute creds         pure $ first BasicAuthAttributeError res -instance (Monad m) => Get (ServerHandler m) (BasicAuth' Optional scheme m e a) Request where+instance (Monad m) => Get (ServerHandler m) (BasicAuth' Optional scheme m e a) where   {-# INLINE getTrait #-}   getTrait ::     (HasTrait (AuthorizationHeader scheme) ts) =>
src/WebGear/Server/Trait/Auth/JWT.hs view
@@ -22,7 +22,7 @@ import WebGear.Core.Trait.Auth.JWT (JWTAuth' (..), JWTAuthError (..)) import WebGear.Server.Handler (ServerHandler) -instance (MonadTime m, Get (ServerHandler m) (AuthorizationHeader scheme) Request) => Get (ServerHandler m) (JWTAuth' Required scheme m e a) Request where+instance (MonadTime m, Get (ServerHandler m) (AuthorizationHeader scheme)) => Get (ServerHandler m) (JWTAuth' Required scheme m e a) where   {-# INLINE getTrait #-}   getTrait ::     (HasTrait (AuthorizationHeader scheme) ts) =>@@ -46,7 +46,7 @@         claims <- withExceptT JWTAuthTokenBadFormat $ JWT.verifyClaims jwtValidationSettings jwkSet jwt         lift (toJWTAttribute claims) >>= either (throwError . JWTAuthAttributeError) pure -instance (MonadTime m, Get (ServerHandler m) (AuthorizationHeader scheme) Request) => Get (ServerHandler m) (JWTAuth' Optional scheme m e a) Request where+instance (MonadTime m, Get (ServerHandler m) (AuthorizationHeader scheme)) => Get (ServerHandler m) (JWTAuth' Optional scheme m e a) where   {-# INLINE getTrait #-}   getTrait ::     (HasTrait (AuthorizationHeader scheme) ts) =>
src/WebGear/Server/Trait/Body.hs view
@@ -16,12 +16,12 @@ import WebGear.Server.Handler (ServerHandler (..)) import WebGear.Server.MIMETypes (BodyRender (..), BodyUnrender (..)) -instance (Monad m, BodyUnrender m mt val) => Get (ServerHandler m) (Body mt val) Request where+instance (Monad m, BodyUnrender m mt val) => Get (ServerHandler m) (Body mt val) where   {-# INLINE getTrait #-}   getTrait :: Body mt val -> ServerHandler m (Request `With` ts) (Either Text val)   getTrait (Body mt) = arrM $ bodyUnrender mt . unwitness -instance (Monad m, BodyRender m mt val) => Set (ServerHandler m) (Body mt val) Response where+instance (Monad m, BodyRender m mt val) => Set (ServerHandler m) (Body mt val) where   {-# INLINE setTrait #-}   setTrait ::     Body mt val ->@@ -45,7 +45,7 @@       | n == HTTP.hContentType = (HTTP.hContentType, mtStr) : hdrs       | otherwise = (n, v) : go hdrs -instance (Monad m) => Set (ServerHandler m) UnknownContentBody Response where+instance (Monad m) => Set (ServerHandler m) UnknownContentBody where   {-# INLINE setTrait #-}   setTrait ::     UnknownContentBody ->
src/WebGear/Server/Trait/Cookie.hs view
@@ -21,7 +21,7 @@ import WebGear.Core.Trait.Cookie (Cookie (..), CookieNotFound (..), CookieParseError (..), SetCookie (..)) import WebGear.Server.Handler (ServerHandler) -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (Cookie Required name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (Cookie Required name val) where   {-# INLINE getTrait #-}   getTrait ::     Cookie Required name val ->@@ -33,7 +33,7 @@         Just (Left e) -> Left $ Right $ CookieParseError e         Just (Right x) -> Right x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (Cookie Optional name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (Cookie Optional name val) where   {-# INLINE getTrait #-}   getTrait ::     Cookie Optional name val ->@@ -60,7 +60,7 @@    returnA -< parseHeader <$> lookupCookie -instance (Monad m, KnownSymbol name) => Set (ServerHandler m) (SetCookie Required name) Response where+instance (Monad m, KnownSymbol name) => Set (ServerHandler m) (SetCookie Required name) where   {-# INLINE setTrait #-}   setTrait ::     SetCookie Required name ->@@ -75,7 +75,7 @@             _ -> response     returnA -< f l response' cookie -instance (Monad m, KnownSymbol name) => Set (ServerHandler m) (SetCookie Optional name) Response where+instance (Monad m, KnownSymbol name) => Set (ServerHandler m) (SetCookie Optional name) where   {-# INLINE setTrait #-}   -- If the optional value is 'Nothing', the cookie is removed from the response   setTrait ::
src/WebGear/Server/Trait/Header.hs view
@@ -29,7 +29,7 @@   let headerName :: HeaderName = fromString $ symbolVal proxy   returnA -< parseHeader <$> requestHeader headerName (unwitness req) -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Required Strict name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Required Strict name val) where   {-# INLINE getTrait #-}   getTrait ::     RequestHeader Required Strict name val ->@@ -41,7 +41,7 @@         Just (Left e) -> Left $ Right $ HeaderParseError e         Just (Right x) -> Right x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Optional Strict name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Optional Strict name val) where   {-# INLINE getTrait #-}   getTrait ::     RequestHeader Optional Strict name val ->@@ -53,7 +53,7 @@         Just (Left e) -> Left $ HeaderParseError e         Just (Right x) -> Right $ Just x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Required Lenient name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Required Lenient name val) where   {-# INLINE getTrait #-}   getTrait ::     RequestHeader Required Lenient name val ->@@ -65,7 +65,7 @@         Just (Left e) -> Right $ Left e         Just (Right x) -> Right $ Right x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Optional Lenient name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (RequestHeader Optional Lenient name val) where   {-# INLINE getTrait #-}   getTrait ::     RequestHeader Optional Lenient name val ->@@ -77,7 +77,7 @@         Just (Left e) -> Right $ Just $ Left e         Just (Right x) -> Right $ Just $ Right x -instance (Monad m, KnownSymbol name, ToHttpApiData val) => Set (ServerHandler m) (ResponseHeader Required name val) Response where+instance (Monad m, KnownSymbol name, ToHttpApiData val) => Set (ServerHandler m) (ResponseHeader Required name val) where   {-# INLINE setTrait #-}   setTrait ::     ResponseHeader Required name val ->@@ -92,7 +92,7 @@             _ -> response     returnA -< f l response' val -instance (Monad m, KnownSymbol name, ToHttpApiData val) => Set (ServerHandler m) (ResponseHeader Optional name val) Response where+instance (Monad m, KnownSymbol name, ToHttpApiData val) => Set (ServerHandler m) (ResponseHeader Optional name val) where   {-# INLINE setTrait #-}   -- If the optional value is 'Nothing', the header is removed from the response   setTrait ::
src/WebGear/Server/Trait/Method.hs view
@@ -10,7 +10,7 @@ import WebGear.Core.Trait.Method (Method (..), MethodMismatch (..)) import WebGear.Server.Handler (ServerHandler) -instance (Monad m) => Get (ServerHandler m) Method Request where+instance (Monad m) => Get (ServerHandler m) Method where   {-# INLINE getTrait #-}   getTrait :: Method -> ServerHandler m (Request `With` ts) (Either MethodMismatch HTTP.StdMethod)   getTrait (Method method) = proc request -> do
src/WebGear/Server/Trait/Path.hs view
@@ -18,7 +18,7 @@  ) import WebGear.Server.Handler (ServerHandler (..)) -instance (Monad m) => Get (ServerHandler m) Path Request where+instance (Monad m) => Get (ServerHandler m) Path where   {-# INLINE getTrait #-}   getTrait :: Path -> ServerHandler m (Request `With` ts) (Either () ())   getTrait (Path p) = ServerHandler $ const $ do@@ -28,7 +28,7 @@       Just ps -> put (RoutePath ps) >> pure (Right ())       Nothing -> pure (Left ()) -instance (Monad m, FromHttpApiData val) => Get (ServerHandler m) (PathVar tag val) Request where+instance (Monad m, FromHttpApiData val) => Get (ServerHandler m) (PathVar tag val) where   {-# INLINE getTrait #-}   getTrait :: PathVar tag val -> ServerHandler m (Request `With` ts) (Either PathVarError val)   getTrait PathVar = ServerHandler $ const $ do@@ -40,14 +40,14 @@           Left e -> pure (Left $ PathVarParseError e)           Right val -> put (RoutePath ps) >> pure (Right val) -instance (Monad m) => Get (ServerHandler m) PathEnd Request where+instance (Monad m) => Get (ServerHandler m) PathEnd where   {-# INLINE getTrait #-}   getTrait :: PathEnd -> ServerHandler m (Request `With` ts) (Either () ())   getTrait PathEnd =-    ServerHandler-      $ const-      $ gets-        ( \case-            RoutePath [] -> Right ()-            _ -> Left ()-        )+    ServerHandler $+      const $+        gets+          ( \case+              RoutePath [] -> Right ()+              _ -> Left ()+          )
src/WebGear/Server/Trait/QueryParam.hs view
@@ -31,7 +31,7 @@       params = queryToQueryText $ queryString $ unwitness req   returnA -< parseQueryParam <$> (find ((== name) . fst) params >>= snd) -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Required Strict name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Required Strict name val) where   {-# INLINE getTrait #-}   getTrait ::     QueryParam Required Strict name val ->@@ -43,7 +43,7 @@         Just (Left e) -> Left $ Right $ ParamParseError e         Just (Right x) -> Right x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Optional Strict name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Optional Strict name val) where   {-# INLINE getTrait #-}   getTrait ::     QueryParam Optional Strict name val ->@@ -55,7 +55,7 @@         Just (Left e) -> Left $ ParamParseError e         Just (Right x) -> Right $ Just x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Required Lenient name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Required Lenient name val) where   {-# INLINE getTrait #-}   getTrait ::     QueryParam Required Lenient name val ->@@ -67,7 +67,7 @@         Just (Left e) -> Right $ Left e         Just (Right x) -> Right $ Right x -instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Optional Lenient name val) Request where+instance (Monad m, KnownSymbol name, FromHttpApiData val) => Get (ServerHandler m) (QueryParam Optional Lenient name val) where   {-# INLINE getTrait #-}   getTrait ::     QueryParam Optional Lenient name val ->
src/WebGear/Server/Trait/Status.hs view
@@ -10,7 +10,7 @@ import WebGear.Core.Trait.Status (Status (..)) import WebGear.Server.Handler (ServerHandler) -instance (Monad m) => Set (ServerHandler m) Status Response where+instance (Monad m) => Set (ServerHandler m) Status where   {-# INLINE setTrait #-}   setTrait ::     Status ->
webgear-server.cabal view
@@ -1,6 +1,6 @@ cabal-version:       2.4 name:                webgear-server-version:             1.2.0+version:             1.3.0 synopsis:            Composable, type-safe library to build HTTP API servers description:     WebGear is a library to for building composable, type-safe HTTP API servers.@@ -59,7 +59,7 @@                     , http-types ==0.12.*                     , text >=1.2.0.0 && <2.2                     , wai ==3.2.*-                    , webgear-core ^>=1.2.0+                    , webgear-core ^>=1.3.0   ghc-options:        -Wall                       -Wno-unticked-promoted-constructors                       -Wcompat