packages feed

apiary-session 1.2.0 → 1.3.0

raw patch · 2 files changed

+14/−16 lines, 2 filesdep +web-routingdep ~apiaryPVP ok

version bump matches the API change (PVP)

Dependencies added: web-routing

Dependency ranges changed: apiary

API changes (from Hackage documentation)

- Web.Apiary.Session: session :: (Has (Session sess actM) exts, Monad actM, NotMember "session" kvs) => proxy sess -> ApiaryT exts (("session" := sess) : kvs) actM m () -> ApiaryT exts kvs actM m ()
+ Web.Apiary.Session: session :: (Has (Session sess actM) exts, Monad actM, "session" </ kvs) => proxy sess -> Filter exts actM m kvs (("session" := sess) : kvs)
- Web.Apiary.Session: session' :: (Has (Session sess actM) exts, KnownSymbol key, Monad actM, NotMember key kvs) => kProxy key -> sProxy sess -> ApiaryT exts ((key := sess) : kvs) actM m () -> ApiaryT exts kvs actM m ()
+ Web.Apiary.Session: session' :: (Has (Session sess actM) exts, KnownSymbol key, Monad actM, key </ kvs) => kProxy key -> sProxy sess -> Filter exts actM m kvs ((key := sess) : kvs)

Files

apiary-session.cabal view
@@ -1,5 +1,5 @@ name:                apiary-session-version:             1.2.0+version:             1.3.0 synopsis:            session support for apiary web framework. description: license:             MIT@@ -8,7 +8,7 @@ maintainer:          HirotomoMoriwaki<philopon.dependence@gmail.com> Homepage:            https://github.com/philopon/apiary Bug-reports:         https://github.com/philopon/apiary/issues-copyright:           (c) 2014 Hirotomo Moriwaki+copyright:           (c) 2014-2015 Hirotomo Moriwaki category:            Web build-type:          Simple stability:           experimental@@ -20,8 +20,9 @@                        Web.Apiary.Session.Internal   other-modules:          build-depends:       base               >=4.6   && <4.8-                     , apiary             >=1.2   && <1.3+                     , apiary             >=1.3   && <1.4                      , wai                >=3.0   && <3.1+                     , web-routing   hs-source-dirs:      src   ghc-options:         -O2 -Wall   default-language:    Haskell2010
src/Web/Apiary/Session.hs view
@@ -16,16 +16,16 @@  import Control.Monad(mzero) -import Control.Monad.Apiary(ApiaryT)-import Control.Monad.Apiary.Action(ActionT, getParams)-import Control.Monad.Apiary.Filter(focus, Doc(DocPrecondition))+import Control.Monad.Apiary.Action(ActionT)+import Control.Monad.Apiary.Filter(focus, Filter, Doc(DocPrecondition))  import Web.Apiary.Session.Internal     (Session(Session), backendGet, backendSet, backendDelete)  import Data.Apiary.Extension(Has, getExt) import Data.Apiary.Compat(Proxy(Proxy), KnownSymbol)-import qualified Data.Apiary.Dict as Dict+import qualified Network.Routing.Dict as Dict+import qualified Network.Routing as R  -- | get session provided type. getSession :: (Has (Session sess m) exts, Monad m) => proxy sess -> ActionT exts prms m (Maybe sess)@@ -47,23 +47,20 @@     backendDelete b  -- | filter by has session or not.-session' :: (Has (Session sess actM) exts, KnownSymbol key, Monad actM, Dict.NotMember key kvs)+session' :: (Has (Session sess actM) exts, KnownSymbol key, Monad actM, key Dict.</ kvs)          => kProxy key -> sProxy sess-         -> ApiaryT exts (key Dict.:= sess ': kvs) actM m ()-         -> ApiaryT exts kvs actM m ()-session' ky p = focus (DocPrecondition "session cookie required.") $ do-    dict <- getParams+         -> Filter exts actM m kvs (key Dict.:= sess ': kvs)+session' ky p = focus (DocPrecondition "session cookie required.") Nothing $ R.raw "session" $ \d t ->     getSession p >>= \case         Nothing -> mzero-        Just s  -> return $ Dict.insert ky s dict+        Just s  -> return (Dict.add ky s d, t)  -- | filter by has session or not. use \"session\" dict key. -- -- @ -- session = session' (Proxy :: Proxy "session") -- @-session :: (Has (Session sess actM) exts, Monad actM, Dict.NotMember "session" kvs)+session :: (Has (Session sess actM) exts, Monad actM, "session" Dict.</ kvs)         => proxy sess-        -> ApiaryT exts ("session" Dict.:= sess ': kvs) actM m ()-        -> ApiaryT exts kvs actM m ()+        -> Filter exts actM m kvs ("session" Dict.:= sess ': kvs) session = session' (Proxy :: Proxy "session")