packages feed

network-api-support 0.3.0 → 0.3.1

raw patch · 3 files changed

+53/−8 lines, 3 filesdep ~aesondep ~http-clientdep ~http-client-tls

Dependency ranges changed: aeson, http-client, http-client-tls

Files

network-api-support.cabal view
@@ -1,5 +1,5 @@ Name:               network-api-support-Version:            0.3.0+Version:            0.3.1 License:            BSD3 License-File:       LICENSE Author:             Mark Hibberd <mark@hibberd.id.au>@@ -29,13 +29,13 @@ Library   Build-Depends:                     base                          >= 3          && < 6-                  , aeson                         >= 0.5        && < 0.13+                  , aeson                         >= 0.5        && < 1.1                   , attoparsec                    >= 0.10       && < 0.14                   , bytestring                    >= 0.9.1.5    && < 0.11                   , case-insensitive              >= 0.2        && < 1.3                   , http-types                    >= 0.6        && < 0.10-                  , http-client                   >= 0.2.2.2    && < 0.5-                  , http-client-tls               >= 0.2.1.1    && < 0.3+                  , http-client                   >= 0.2.2.2    && < 0.6+                  , http-client-tls               >= 0.2.1.1    && < 0.4                   , text                          >= 0.11       && < 1.3                   , time                          == 1.*                   , tls                           >= 1.2.0      && < 1.4
src/Network/Api/Support/Core.hs view
@@ -1,7 +1,9 @@-{-# LANGUAGE OverloadedStrings, FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings, FlexibleContexts, CPP #-} module Network.Api.Support.Core (   runRequest , runRequest'+, runRequestWith+, runRequestWith' ) where  import Network.Api.Support.Request@@ -28,6 +30,20 @@ runRequest settings stdmethod url transform  =   runRequest' settings url (transform <> setMethod (renderStdMethod stdmethod)) +-- | Run a request using the specified settings, method, url and request transformer.+--+--   Prefer this to runRequest as recreating the manager every time is very inefficient.+--+runRequestWith ::+  Manager+  -> StdMethod+  -> Text+  -> RequestTransformer+  -> Responder b+  -> IO b+runRequestWith manager stdmethod url transform  =+  runRequestWith' manager url (transform <> setMethod (renderStdMethod stdmethod))+ -- | Run a request using the specified settings, url and request transformer. The method -- | can be set using the setMethod transformer. This is only useful if you require a -- | custom http method. Prefer runRequest where possible.@@ -37,9 +53,33 @@   -> RequestTransformer   -> Responder b   -> IO b-runRequest' settings url transform responder =-  do url' <- parseRequest $ unpack url+runRequest' settings url transform responder = do+  manager <- newManager settings+  runRequestWith' manager url transform responder++-- | Run a request using the specified manager, url and request transformer. The method+--   can be set using the setMethod transformer. This is only useful if you require a+--   custom http method. Prefer runRequest where possible.+--+--   Prefer this to runRequest' as recreating the manager every time is very inefficient.+--+runRequestWith' ::+  Manager+  -> Text+  -> RequestTransformer+  -> Responder b+  -> IO b+runRequestWith' manager url transform responder =+-- To achieve backwards compatibility for http-client<0.4.30+-- parseURL needs to be used and the default `checkStatus` handler+-- overridden to disable the trapping of non-2xx HTTP response codes.+-- Thereafter `parseRequest` can be used which does not trap any+-- reponse codes (the required behaviour).+#if MIN_VERSION_http_client(0,4,30)+  do url'' <- parseRequest $ unpack url+#else+  do url'  <- parseUrl     $ unpack url      let url'' = url' { checkStatus = const . const . const $ Nothing } -- handle all response codes.+#endif      let req = appEndo transform url''-     manager <- newManager settings      liftM (responder req) $ httpLbs req manager
src/Network/Api/Support/Response.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE OverloadedStrings, FlexibleContexts, CPP #-} module Network.Api.Support.Response (   Responder , JsonResult (..)@@ -5,6 +6,10 @@ , parseBodyWith , basicResponder ) where++#if ! MIN_VERSION_base(4,8,0)+import Control.Applicative+#endif  import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL