packages feed

network-api-support 0.0.3 → 0.0.4

raw patch · 4 files changed

+18/−8 lines, 4 filesdep +time

Dependencies added: time

Files

network-api-support.cabal view
@@ -1,5 +1,5 @@ Name:               network-api-support-Version:            0.0.3+Version:            0.0.4 License:            BSD3 License-File:       LICENSE Author:             Mark Hibberd <mark@hibberd.id.au>@@ -39,6 +39,7 @@                     , http-types                    >= 0.6                     , resourcet                     >= 0.3                     , text                          >= 0.11+                    , time                          >= 1                     , tls                           >= 0.9                     , tls-extra                     >= 0.4                     , transformers                  >= 0.2
src/Network/Api/Support/Core.hs view
@@ -27,7 +27,7 @@   -> StdMethod   -> Text   -> RequestTransformer m-  -> Responder b+  -> Responder m b   -> m b runRequest settings stdmethod url transform  =   runRequest' settings url (transform <> setMethod (renderStdMethod stdmethod))@@ -40,12 +40,13 @@   ManagerSettings   -> Text   -> RequestTransformer m-  -> Responder b+  -> Responder m b   -> m b runRequest' settings url transform responder =   do url' <- parseUrl $ unpack url      let url'' = url' { checkStatus = const . const $ Nothing } -- handle all response codes.-     liftM responder . withCustomManager settings . httpLbs $ appEndo transform url''+     let req = appEndo transform url''+     liftM (responder req) . withCustomManager settings . httpLbs $ req  -- Build a custom connection manager and run ResourceT against that connection manager. -- This function is responsible for ensuring manager is always closed.
src/Network/Api/Support/Request.hs view
@@ -7,6 +7,7 @@ , setHeader , addHeader , stripHeader+, setCookieJar , setMethod , setBody , setBodyLazy@@ -21,6 +22,7 @@ import Data.Aeson import Data.CaseInsensitive import Data.Monoid+import Data.Time  import Network.HTTP.Conduit @@ -56,6 +58,10 @@ stripHeader n = (Endo $ \r ->  r {     requestHeaders = filter (\x -> fst x == n) (requestHeaders r)   })++-- | Register all cookies in cookie jar against request.+setCookieJar :: CookieJar -> UTCTime -> RequestTransformer m+setCookieJar cj now = Endo $ \r -> fst $ insertCookiesIntoRequest r cj now  -- | Set the request method to be the specified name. setMethod :: B.ByteString -> RequestTransformer m
src/Network/Api/Support/Response.hs view
@@ -6,6 +6,8 @@ , basicResponder ) where +import Control.Monad.Trans.Resource+ import qualified Data.ByteString as B import qualified Data.ByteString.Lazy as BL import Data.Attoparsec.Lazy@@ -16,8 +18,8 @@ import Network.HTTP.Types  -- | Response handler.-type Responder a =-  Response BL.ByteString -> a+type Responder m a =+  Request (ResourceT m) -> Response BL.ByteString -> a  -- | Wrap up json parse and decode errors. data JsonResult a =@@ -52,6 +54,6 @@       (Success a) -> JsonSuccess a  -- | Lift function handling status code and body into a responder.-basicResponder :: (Int -> BL.ByteString -> a) -> Responder a-basicResponder f (Response (Status code _) _ _ body) =+basicResponder :: (Int -> BL.ByteString -> a) -> Responder m a+basicResponder f _ (Response (Status code _) _ _ body) =   f code body