apiary-cookie 0.17.0 → 1.0.0
raw patch · 2 files changed
+16/−15 lines, 2 filesdep ~apiary
Dependency ranges changed: apiary
Files
- apiary-cookie.cabal +2/−2
- src/Web/Apiary/Cookie.hs +14/−13
apiary-cookie.cabal view
@@ -1,5 +1,5 @@ name: apiary-cookie-version: 0.17.0+version: 1.0.0 synopsis: Cookie support for apiary web framework. description: example: <https://github.com/philopon/apiary/blob/master/examples/auth.hs>@@ -19,7 +19,7 @@ library exposed-modules: Web.Apiary.Cookie build-depends: base >=4.6 && <4.8- , apiary >=0.16 && <0.18+ , apiary >=1.0 && <1.1 , bytestring >=0.10 && <0.11 , cookie >=0.4 && <0.5
src/Web/Apiary/Cookie.hs view
@@ -6,10 +6,10 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE ImplicitParams #-} {-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE TypeFamilies #-} module Web.Apiary.Cookie - ( - -- * setter+ ( -- * setter setCookie , deleteCookie -- * filter@@ -25,16 +25,17 @@ import Web.Cookie (SetCookie(..)) import qualified Web.Cookie as Cookie -import Control.Monad.Apiary.Filter.Internal-import Control.Monad.Apiary.Filter.Internal.Strategy+import Data.Apiary.Param+import Control.Monad.Apiary.Filter import Data.Maybe import Data.Time import Data.Monoid-import Data.Apiary.Document+import Data.Apiary.Compat import Blaze.ByteString.Builder import Text.Blaze.Html import qualified Data.ByteString as S+import qualified Data.ByteString.Char8 as SC cond :: (a -> Bool) -> (a -> b) -> (a -> b) -> a -> b cond p t f a = if p a then t a else f a@@ -51,13 +52,13 @@ -- cookie "baz" (pMany (pMaybe pString)) -- get zero or more baz cookies. allows cookie decrypt failure. -- cookie "baz" (Proxy :: Proxy (LimitSome [int|100|] ByteString)) -- get raw cookies up to 100 entries. -- @-cookie :: (Strategy w, Query p, Monad actM)- => S.ByteString- -> w p- -> ApiaryT exts (SNext w prms p) actM m ()+cookie :: (Strategy w, Monad actM, NotMember k prms, KnownSymbol k)+ => proxy k+ -> w S.ByteString+ -> ApiaryT exts (SNext w k S.ByteString prms) actM m () -> ApiaryT exts prms actM m ()-cookie k p = function (DocPrecondition $ toHtml (show k) <> " cookie required") $ \l r ->- readStrategy (readQuery . Just) ((k ==) . fst) p (cookie' r) l+cookie k p = function (DocPrecondition $ toHtml (symbolVal k) <> " cookie required") $ \l r ->+ strategy p k (map (Just . snd) . filter ((SC.pack (symbolVal k) ==) . fst) $ cookie' r) l cookie' :: Request -> [(S.ByteString, S.ByteString)] cookie' = @@ -66,13 +67,13 @@ requestHeaders -- | delete cookie. since 0.6.1.0.-deleteCookie :: Monad m => S.ByteString -> ActionT exts m ()+deleteCookie :: Monad m => S.ByteString -> ActionT exts prms m () deleteCookie k = setCookie def { setCookieName = k , setCookieExpires = Just $ UTCTime (ModifiedJulianDay 0) 0 , setCookieMaxAge = Just 0 } -- | set raw cookie header.-setCookie :: Monad m => SetCookie -> ActionT exts m ()+setCookie :: Monad m => SetCookie -> ActionT exts prms m () setCookie = addHeader "set-cookie" . toByteString . Cookie.renderSetCookie