eved 0.0.2.0 → 0.0.2.1
raw patch · 4 files changed
+6/−3 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- eved.cabal +1/−1
- src/Web/Eved/Header.hs +1/−0
- src/Web/Eved/Options.hs +2/−1
- src/Web/Eved/Server.hs +2/−1
eved.cabal view
@@ -1,5 +1,5 @@ name: eved-version: 0.0.2.0+version: 0.0.2.1 synopsis: A value level web framework description: A value level web framework in the style of servant homepage: https://github.com/foxhound-systems/eved#readme
src/Web/Eved/Header.hs view
@@ -30,3 +30,4 @@ Just a -> toHeaderValue h a Nothing -> Nothing }+
src/Web/Eved/Options.hs view
@@ -9,6 +9,7 @@ import qualified Data.ByteString as B import Data.Coerce (coerce)+import qualified Data.List as List import Data.Text (Text) import Network.HTTP.Types import Network.Wai@@ -21,7 +22,7 @@ getOptionsResponse :: EvedOptions m a -> Request -> Response getOptionsResponse api req =- let methods = renderStdMethod <$> getAvailableMethods api (pathInfo req)+ let methods = renderStdMethod <$> getAvailableMethods api (List.dropWhileEnd (== "") (pathInfo req)) headers = [ ("Allow", B.intercalate ", " $ "OPTIONS":methods) ] in responseBuilder status200 headers mempty
src/Web/Eved/Server.hs view
@@ -15,6 +15,7 @@ handle, throwIO, try) import Control.Monad import qualified Data.ByteString.Lazy as LBS+import qualified Data.List as List import qualified Data.List.NonEmpty as NE import Data.Maybe (catMaybes, fromMaybe) import Data.Text (Text)@@ -48,7 +49,7 @@ server :: (forall a. m a -> IO a) -> a -> EvedServerT m a -> Application server nt handlers api req resp =- unEvedServerT api nt (pathInfo req) (PureRequestData handlers) req resp+ unEvedServerT api nt (List.dropWhileEnd (== "") (pathInfo req)) (PureRequestData handlers) req resp `catch` (\case PathError -> resp $ responseLBS notFound404 [] "Not Found" CaptureError err -> resp $ responseLBS badRequest400 [] (LBS.fromStrict $ encodeUtf8 err)