network-api-support 0.0.8 → 0.1.0
raw patch · 6 files changed
+14/−45 lines, 6 filesdep +http-client-tlsdep −certificatedep −failuredep −http-conduitdep ~http-clientdep ~tls
Dependencies added: http-client-tls
Dependencies removed: certificate, failure, http-conduit, resourcet, tls-extra, transformers
Dependency ranges changed: http-client, tls
Files
- network-api-support.cabal +7/−14
- src/Network/Api/Support.hs +1/−1
- src/Network/Api/Support/Core.hs +4/−9
- src/Network/Api/Support/Request.hs +1/−2
- src/Network/Api/Support/Response.hs +1/−1
- src/Network/Api/Support/Security.hs +0/−18
network-api-support.cabal view
@@ -1,5 +1,5 @@ Name: network-api-support-Version: 0.0.8+Version: 0.1.0 License: BSD3 License-File: LICENSE Author: Mark Hibberd <mark@hibberd.id.au>@@ -14,11 +14,10 @@ Description: Toolkit for building http client libraries over Network.Http.Conduit. .- /Note/: This library is under heavy development, currently- the library is functional but undocumented. Examples of use- can be found in the pin and postmark client libraries.- Basically expect improvements and change.+ /Note/: Examples of use can be found in the pin and postmark client+ libraries. + Source-Repository head Type: git Location: https://github.com/apiengine/network-api-support.git@@ -33,17 +32,12 @@ , attoparsec >= 0.10 , bytestring >= 0.9 , case-insensitive >= 0.4- , certificate >= 1.2- , failure >= 0.2- , http-conduit >= 2.0.0.4 , http-types >= 0.6- , http-client >= 0.1- , resourcet >= 0.3+ , http-client >= 0.2.2.2+ , http-client-tls >= 0.2.1.1 , text >= 0.11 , time >= 1- , tls >= 0.9- , tls-extra >= 0.4- , transformers >= 0.2+ , tls >= 1.2.2 GHC-Options: -Wall -fno-warn-orphans@@ -56,4 +50,3 @@ Network.Api.Support.Core Network.Api.Support.Request Network.Api.Support.Response- Network.Api.Support.Security
src/Network/Api/Support.hs view
@@ -12,4 +12,4 @@ import Network.Api.Support.Core as X import Network.Api.Support.Request as X import Network.Api.Support.Response as X-import Network.Api.Support.Security as X+--import Network.Api.Support.Security as X
src/Network/Api/Support/Core.hs view
@@ -7,28 +7,24 @@ import Network.Api.Support.Request import Network.Api.Support.Response -import Control.Failure import Control.Monad-import Control.Monad.IO.Class-import Control.Monad.Trans.Resource import Data.Text import Data.Monoid -import Network.HTTP.Conduit+import Network.HTTP.Client import Network.HTTP.Types -- * Request runners -- | Run a request using the specified settings, method, url and request transformer. runRequest ::- (MonadIO m, MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, Failure HttpException m) => ManagerSettings -> StdMethod -> Text -> RequestTransformer -> Responder b- -> m b+ -> IO b runRequest settings stdmethod url transform = runRequest' settings url (transform <> setMethod (renderStdMethod stdmethod)) @@ -36,14 +32,13 @@ -- | can be set using the setMethod transformer. This is only useful if you require a -- | custom http method. Prefer runRequest where possible. runRequest' ::- (MonadIO m, MonadBaseControl IO m, MonadThrow m, MonadUnsafeIO m, Failure HttpException m) => ManagerSettings -> Text -> RequestTransformer -> Responder b- -> m b+ -> IO b runRequest' settings url transform responder = do url' <- parseUrl $ unpack url let url'' = url' { checkStatus = const . const . const $ Nothing } -- handle all response codes. let req = appEndo transform url''- liftM (responder req) . withManagerSettings settings . httpLbs $ req+ liftM (responder req) . withManager settings . httpLbs $ req
src/Network/Api/Support/Request.hs view
@@ -22,8 +22,7 @@ import Data.Monoid import Data.Time -import Network.HTTP.Conduit-import Network.HTTP.Client (insertCookiesIntoRequest)+import Network.HTTP.Client -- * Request transformers
src/Network/Api/Support/Response.hs view
@@ -12,7 +12,7 @@ import Data.Aeson import Data.Text -import Network.HTTP.Conduit+import Network.HTTP.Client import Network.HTTP.Types -- | Response handler.
− src/Network/Api/Support/Security.hs
@@ -1,18 +0,0 @@-module Network.Api.Support.Security (- checkDomainOnly-) where--import qualified Data.ByteString.Char8 as B8-import Data.Certificate.X509 (X509)--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 :: CertificateStore -> B8.ByteString -> [X509] -> IO TLSCertificateUsage-checkDomainOnly _ host' certs = return $ certificateVerifyDomain (B8.unpack host') certs