waiz 0.0.1.0 → 0.0.2.0
raw patch · 3 files changed
+47/−16 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Network.Wai.Optics.Response: applicationResponse :: Setter' Application Response
+ Network.Wai.Optics.Response: getResponseHeaders :: GetResponse s => Getter s ResponseHeaders
+ Network.Wai.Optics.Response: getResponseStatus :: GetResponse s => Getter s Status
- Network.Wai.Optics.Response: responseHeaders :: Getter Response ResponseHeaders
+ Network.Wai.Optics.Response: responseHeaders :: HasResponse s => Lens' s ResponseHeaders
- Network.Wai.Optics.Response: responseStatus :: Getter Response Status
+ Network.Wai.Optics.Response: responseStatus :: HasResponse s => Lens' s Status
Files
- changelog +8/−0
- src/Network/Wai/Optics/Response.hs +38/−15
- waiz.cabal +1/−1
changelog view
@@ -1,3 +1,11 @@+0.0.2.0++* Upgrade responseStatus and responseHeaders from Getter to Lens' on+ HasResponse, using mapResponseStatus / mapResponseHeaders for the setter+* Add getResponseStatus and getResponseHeaders getters to GetResponse+* Add applicationResponse :: Setter' Application Response, using+ modifyResponse under the hood+ 0.0.1.0 * Initial release
src/Network/Wai/Optics/Response.hs view
@@ -30,18 +30,17 @@ ReviewResponseRaw (..), AsResponseRaw (..), - -- * Getters- responseStatus,- responseHeaders,+ -- * Setters+ applicationResponse, ) where -import Control.Category (id)-import Control.Lens (Getter, Lens', Prism', Review, lens, prism', review, to, unto, view)+import Control.Category (id, (.))+import Control.Lens (Getter, Lens', Prism', Review, Setter', lens, prism', review, sets, to, unto, view) import Data.ByteString (ByteString) import Data.ByteString.Builder (Builder) import Data.Maybe (Maybe (..)) import Network.HTTP.Types (ResponseHeaders, Status)-import Network.Wai (Response, StreamingBody)+import Network.Wai (Application, Response, StreamingBody) import qualified Network.Wai as Wai import Network.Wai.Internal ( FilePart,@@ -53,10 +52,22 @@ class GetResponse s where -- | A 'Getter' to obtain a 'Response'. getResponse :: Getter s Response+ -- | A 'Getter' on the 'Status'.+ getResponseStatus :: Getter s Status+ getResponseStatus = getResponse . getResponseStatus+ {-# INLINE getResponseStatus #-}+ -- | A 'Getter' on the 'ResponseHeaders'.+ getResponseHeaders :: Getter s ResponseHeaders+ getResponseHeaders = getResponse . getResponseHeaders+ {-# INLINE getResponseHeaders #-} instance GetResponse Response where getResponse = id {-# INLINE getResponse #-}+ getResponseStatus = to Wai.responseStatus+ {-# INLINE getResponseStatus #-}+ getResponseHeaders = to Wai.responseHeaders+ {-# INLINE getResponseHeaders #-} -- | Type class for values with a lens into a 'Response'. class (GetResponse s) => HasResponse s where@@ -70,9 +81,23 @@ response = lens (view getResponse) (flip setResponse) {-# INLINE response #-} + -- | A 'Lens'' on the 'Status'.+ responseStatus :: Lens' s Status+ responseStatus = response . responseStatus+ {-# INLINE responseStatus #-}++ -- | A 'Lens'' on the 'ResponseHeaders'.+ responseHeaders :: Lens' s ResponseHeaders+ responseHeaders = response . responseHeaders+ {-# INLINE responseHeaders #-}+ instance HasResponse Response where setResponse = const {-# INLINE setResponse #-}+ responseStatus = lens Wai.responseStatus (\r s -> Wai.mapResponseStatus (const s) r)+ {-# INLINE responseStatus #-}+ responseHeaders = lens Wai.responseHeaders (\r h -> Wai.mapResponseHeaders (const h) r)+ {-# INLINE responseHeaders #-} -- | Type class for values that can be constructed from a 'Response'. class ReviewResponse t where@@ -99,15 +124,13 @@ matchResponse = Just {-# INLINE matchResponse #-} --- | A 'Getter' on the 'Status' of a 'Response'.-responseStatus :: Getter Response Status-responseStatus = to Wai.responseStatus-{-# INLINE responseStatus #-}---- | A 'Getter' on the 'ResponseHeaders' of a 'Response'.-responseHeaders :: Getter Response ResponseHeaders-responseHeaders = to Wai.responseHeaders-{-# INLINE responseHeaders #-}+-- | A 'Setter'' on the 'Response' within an 'Application'.+--+-- Uses 'Wai.modifyResponse' under the hood. Allows modifying the response+-- that an 'Application' produces without manually threading the CPS callback.+applicationResponse :: Setter' Application Response+applicationResponse = sets Wai.modifyResponse+{-# INLINE applicationResponse #-} -- ** ResponseFile
waiz.cabal view
@@ -1,5 +1,5 @@ name: waiz-version: 0.0.1.0+version: 0.0.2.0 license: BSD3 license-file: LICENCE author: Tony Morris <tmorris@tmorris.net>