packages feed

wai-predicates 0.3 → 0.3.1

raw patch · 4 files changed

+30/−5 lines, 4 filesdep +vault

Dependencies added: vault

Files

CHANGELOG.md view
@@ -1,19 +1,23 @@+0.3.1+-----------------------------------------------------------------------------+- Add `fromVault` predicate and `HasVault` type-class.+ 0.3----+----------------------------------------------------------------------------- - Change `header`, `hasHeader` and `lookupHeader` to use `HeaderName` instead   of `ByteString` for the lookup key.  0.2.1------+----------------------------------------------------------------------------- - Update WAI version bounds to include 2.1  0.2----+----------------------------------------------------------------------------- - Rename `getRequest` predicate to `request` and `request` method of   `HasRequest` to `getRequest`. - Add `MonadTrans` and `MonadIO` instance declarations for `ResultT` and   some helper functions.  0.1----+----------------------------------------------------------------------------- - Initial release.
src/Network/Wai/Predicate.hs view
@@ -22,6 +22,9 @@      , accept     , contentType++    , fromVault+     , module Network.Wai.Predicate.MediaType     , module Network.Wai.Predicate.Error     ) where@@ -33,6 +36,7 @@ import Data.Monoid import Data.Maybe (isJust) import Data.Predicate+import Data.Vault.Lazy (Key) import Data.Word import Network.HTTP.Types import Network.Wai.Predicate.Accept@@ -43,6 +47,8 @@ import Network.Wai.Predicate.Utility import Network.Wai +import qualified Data.Vault.Lazy as Vault+ request :: (HasRequest r) => Predicate r f Request request = return . getRequest @@ -89,3 +95,9 @@     if null (lookupCookie k r)         then Fail (err status400 ("Missing cookie '" <> k <> "'."))         else return ()++fromVault :: HasVault r => Key a -> Predicate r Error a+fromVault k r = case Vault.lookup k (requestVault r) of+    Nothing -> Fail (err status500 "Vault does not contain key.")+    Just  a -> return a+
src/Network/Wai/Predicate/Request.hs view
@@ -12,6 +12,7 @@     , HasQuery   (..)     , HasPath    (..)     , HasRequest (..)+    , HasVault   (..)      , fromRequest     , lookupHeader@@ -23,6 +24,7 @@ import Data.ByteString (ByteString) import Data.Maybe (mapMaybe) import Data.Vector (Vector, (!?))+import Data.Vault.Lazy (Vault) import Data.Word import Network.HTTP.Types import Network.Wai (Request)@@ -50,6 +52,9 @@ class HasPath a where     segments :: a -> Vector ByteString +class HasVault a where+    requestVault :: a -> Vault+ data Req = Req     { _request  :: Request     , _cookies  :: Cookies@@ -82,6 +87,9 @@  instance HasPath Req where     segments = _segments++instance HasVault Req where+    requestVault = Wai.vault . _request  fromRequest :: Request -> Req fromRequest rq =
wai-predicates.cabal view
@@ -1,5 +1,5 @@ name:                wai-predicates-version:             0.3+version:             0.3.1 synopsis:            WAI request predicates license:             OtherLicense license-file:        LICENSE@@ -55,6 +55,7 @@       , case-insensitive == 1.1.*       , http-types       == 0.8.*       , transformers     == 0.3.*+      , vault            == 0.3.*       , vector           == 0.10.*       , wai              >= 2.0 && < 2.2