Merge branch 'master' of github.com:yogsototh/wai-middleware-caching

This commit is contained in:
Yann Esposito (Yogsototh) 2016-01-24 18:37:24 +01:00
commit 5157c09bd7
2 changed files with 13 additions and 6 deletions

View file

@ -13,7 +13,8 @@ import qualified Data.ByteString.Lazy as LZ
import Data.IORef import Data.IORef
import Network.Wai (Middleware, Request, Response, import Network.Wai (Middleware, Request, Response,
requestBody, responseToStream, requestBody, responseToStream,
mapResponseHeaders) responseStatus, mapResponseHeaders)
import Network.HTTP.Types.Status (statusCode)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- | The data structure that should contains everything you need to create -- | The data structure that should contains everything you need to create
@ -87,10 +88,15 @@ addToCacheAndRespond :: CacheBackend cc ck cv
-> Response -> Response
-> IO b -> IO b
addToCacheAndRespond cb sendResponse req key r = do addToCacheAndRespond cb sendResponse req key r = do
cacheVal <- responseToCacheVal cb r let code = statusCode (responseStatus r)
addToCache cb (cacheContainer cb) key cacheVal if (code >= 200) && (code < 400)
actionOnCacheMiss cb req r then do
sendResponse (cacheValToResponse cb cacheVal) cacheVal <- responseToCacheVal cb r
addToCache cb (cacheContainer cb) key cacheVal
actionOnCacheMiss cb req r
sendResponse (cacheValToResponse cb cacheVal)
else
sendResponse r
getRequestBody :: Request -> IO (Request, S8.ByteString) getRequestBody :: Request -> IO (Request, S8.ByteString)
getRequestBody req = do getRequestBody req = do

View file

@ -1,5 +1,5 @@
name: wai-middleware-caching name: wai-middleware-caching
version: 0.1.0.1 version: 0.1.0.2
synopsis: WAI Middleware to cache things synopsis: WAI Middleware to cache things
description: Please see README.md description: Please see README.md
homepage: http://github.com/yogsototh/wai-middleware-caching/tree/master/wai-middleware-caching#readme homepage: http://github.com/yogsototh/wai-middleware-caching/tree/master/wai-middleware-caching#readme
@ -20,6 +20,7 @@ library
, blaze-builder , blaze-builder
, bytestring , bytestring
, wai >= 3.0 , wai >= 3.0
, http-types
default-language: Haskell2010 default-language: Haskell2010
test-suite wai-middleware-caching-test test-suite wai-middleware-caching-test