packages feed

network-api-support 0.0.2 → 0.0.3

raw patch · 3 files changed

+24/−5 lines, 3 files

Files

network-api-support.cabal view
@@ -1,5 +1,5 @@ Name:               network-api-support-Version:            0.0.2+Version:            0.0.3 License:            BSD3 License-File:       LICENSE Author:             Mark Hibberd <mark@hibberd.id.au>
src/Network/Api/Support/Request.hs view
@@ -4,6 +4,9 @@ , setApiKey , setParams , setHeaders+, setHeader+, addHeader+, stripHeader , setMethod , setBody , setBodyLazy@@ -38,8 +41,22 @@  -- | Set request headers. setHeaders :: [(CI B.ByteString, B.ByteString)] -> RequestTransformer m-setHeaders m = Endo $ \r -> r { requestHeaders = m }+setHeaders hs = Endo $ \r -> r { requestHeaders = hs } +-- | Set a request headers.+setHeader :: (CI B.ByteString, B.ByteString) -> RequestTransformer m+setHeader h = stripHeader (fst h) <> addHeader h++-- | Add a request headers.+addHeader :: (CI B.ByteString, B.ByteString) -> RequestTransformer m+addHeader h = Endo $ \r -> r { requestHeaders = requestHeaders r ++ [h] }++-- | Set a request headers.+stripHeader :: CI B.ByteString -> RequestTransformer m+stripHeader n = (Endo $ \r ->  r {+    requestHeaders = filter (\x -> fst x == n) (requestHeaders r)+  })+ -- | Set the request method to be the specified name. setMethod :: B.ByteString -> RequestTransformer m setMethod m = Endo $ \r -> r { method = m }@@ -54,7 +71,8 @@  -- | Set the request body from the value which can be converted to JSON. setJson :: ToJSON a => a -> RequestTransformer m-setJson = setBodyLazy . encode . toJSON+setJson v = setHeader ("Content-Type", "application/json") <>+            (setBodyLazy . encode . toJSON $ v)  -- * Compatability 
src/Network/Api/Support/Security.hs view
@@ -7,11 +7,12 @@  import Network.TLS (TLSCertificateUsage) import Network.TLS.Extra (certificateVerifyDomain)+import Data.CertificateStore (CertificateStore)  -- | A TLS validator that checks the domain only. Note that this means the validator -- | will not check the cert chain, and can be used on systems where Data.Certificate.X509 -- | falls over as it does not have access to local root certs. -- | -- | ! Use with caution !-checkDomainOnly :: B8.ByteString -> [X509] -> IO TLSCertificateUsage-checkDomainOnly host' certs = return $ certificateVerifyDomain (B8.unpack host') certs+checkDomainOnly :: CertificateStore -> B8.ByteString -> [X509] -> IO TLSCertificateUsage+checkDomainOnly _ host' certs = return $ certificateVerifyDomain (B8.unpack host') certs