Merge branch 'master' of github.com:yogsototh/wai-middleware-caching
This commit is contained in:
commit
5157c09bd7
2 changed files with 13 additions and 6 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue