packages feed

rest-client 0.3.0.0 → 0.4

raw patch · 3 files changed

+26/−18 lines, 3 filesdep −aesondep −exceptions

Dependencies removed: aeson, exceptions

Files

CHANGELOG.md view
@@ -1,5 +1,9 @@ # Changelog +## 0.4++* Moved functionality from rest-gen into this package, you should regenerate haskell clients+ ## 0.3.0.0  * Replace runT' -> runT, use runResourceT (runT ...) if you want the old behavior
rest-client.cabal view
@@ -1,5 +1,5 @@ name:                rest-client-version:             0.3.0.0+version:             0.4 description:         Utility library for use in generated API client libraries. synopsis:            Utility library for use in generated API client libraries. maintainer:          code@silk.co@@ -25,7 +25,6 @@     Rest.Client.Internal   build-depends:       base == 4.*-    , aeson >= 0.7 && < 0.8     , aeson-utils >= 0.2.1 && < 0.3     , bytestring >= 0.9 && < 0.11     , case-insensitive >= 0.4 && < 1.3@@ -37,9 +36,8 @@     , hxt-pickle-utils == 0.1.*     , monad-control == 0.3.*     , mtl >= 2.0 && < 2.3-    , resourcet == 1.1.*     , primitive == 0.5.*-    , exceptions >= 0.5 && < 0.7+    , resourcet == 1.1.*     , rest-types == 1.10.*     , tostring == 0.2.*     , transformers-base == 0.4.*
src/Rest/Client/Internal.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE-    CPP-  , FlexibleInstances+    FlexibleInstances   , OverlappingInstances+  , OverloadedStrings   , UndecidableInstances   #-} module Rest.Client.Internal@@ -25,12 +25,16 @@   , toJSON   , fromXML   , toXML++  , makeReq+  , doReq   ) where  import Control.Arrow import Control.Monad import Control.Monad.Cont import Data.Aeson.Utils (FromJSON, ToJSON, decodeV, encode)+import Data.Default (def) import Data.List import Data.Maybe import Data.Monoid@@ -38,22 +42,17 @@ import Data.String.ToString import Network.HTTP.Conduit hiding (method, responseBody, responseHeaders) import Network.HTTP.Types hiding (statusCode, statusMessage)+import Rest.Types.Error+import Rest.Types.ShowUrl import Text.XML.HXT.Arrow.Pickle-#if MIN_VERSION_http_conduit(2,0,0)-import Data.Default (def)-#endif- import qualified Data.ByteString.Char8     as CH import qualified Data.ByteString.Lazy      as L import qualified Data.ByteString.Lazy.UTF8 as L import qualified Network.HTTP.Conduit      as HTTP import qualified Network.HTTP.Types        as HTTP--import Rest.Types.Error-import Rest.Types.ShowUrl--import qualified Network.URI.Encode as URI-import qualified Text.Xml.Pickle    as P+import qualified Network.HTTP.Types.Header+import qualified Network.URI.Encode        as URI+import qualified Text.Xml.Pickle           as P  import Rest.Client.Base @@ -81,8 +80,11 @@ splitHost :: String -> (String, String) splitHost hst = break (== '/') hst -doRequest :: (ApiStateC m, MonadIO m) => ApiRequest -> m (Response L.ByteString)-doRequest (ApiRequest m ur ps rhds bd) =+doRequest :: ApiStateC m => (L.ByteString -> Rest.Types.Error.Reason e) -> (L.ByteString -> a) -> ApiRequest -> m (ApiResponse e a)+doRequest a b = liftM (parseResult a b) . doReq++doReq :: (ApiStateC m, MonadIO m) => ApiRequest -> m (Response L.ByteString)+doReq (ApiRequest m ur ps rhds bd) =   do mn  <- fmap manager askApiInfo      hst <- fmap apiHost askApiInfo      prt <- fmap apiPort askApiInfo@@ -134,4 +136,8 @@               ) v     where err = error ("Error parsing XML in api binding, this should not happen: " ++ L.toString v)   toXML = L.fromString . P.toXML+++makeReq :: String -> String -> [[String]] -> [(String, String)] -> Network.HTTP.Types.Header.RequestHeaders -> L.ByteString -> ApiRequest+makeReq meth v ls pList hs body = ApiRequest meth (intercalate "/" (v : map URI.encode (concat ls))) pList hs body