git.iko.soy/typeable/servant
on master help sign in
unsafegetmeamanager
commit7049383e77f141a4582cb9ffd468f2640aeb6787 authorJulian K. Arni <jkarni@gmail.com> dateMon 28 Sep 2015, 18:07 (11 years ago) parentf14d227
3 files changed+21−3
servant-examples/hackage/hackage.hs+11−2 servant-examples/servant-examples.cabal+2 servant-examples/tutorial/T8.hs+8−1
servant-examples/hackage/hackage.hs+11−2
@@ -12,6 +12,9 @@ import Data.Monoid
1212import Data.Proxy
1313import Data.Text (Text)
1414import GHC.Generics
15+import Network.HTTP.Client (Manager, defaultManagerSettings,
16+ newManager)
17+import System.IO.Unsafe (unsafePerformIO)
1518import Servant.API
1619import Servant.Client
1720
@@ -55,10 +58,16 @@ instance FromJSON Package
5558hackageAPI :: Proxy HackageAPI
5659hackageAPI = Proxy
5760
61+
62+{-# NOINLINE manager #-}
63+manager :: Manager
64+manager = unsafePerformIO $ newManager defaultManagerSettings
65+
5866getUsers :: ExceptT ServantError IO [UserSummary]
5967getUser :: Username -> ExceptT ServantError IO UserDetailed
6068getPackages :: ExceptT ServantError IO [Package]
61−getUsers :<|> getUser :<|> getPackages = client hackageAPI $ BaseUrl Http "hackage.haskell.org" 80 ""
69+getUsers :<|> getUser :<|> getPackages =
70+ client hackageAPI (BaseUrl Http "hackage.haskell.org" 80 "") manager
6271
6372main :: IO ()
6473main = print =<< uselessNumbers
@@ -71,7 +80,7 @@ uselessNumbers = runExceptT $ do
7180 user <- liftIO $ do
7281 putStrLn "Enter a valid hackage username"
7382 T.getLine
74− userDetailed <- (getUser user)
83+ userDetailed <- getUser user
7584 liftIO . T.putStrLn $ user <> " maintains " <> T.pack (show (length $ groups userDetailed)) <> " packages"
7685
7786 packages <- getPackages
servant-examples/servant-examples.cabal+2
@@ -53,6 +53,7 @@ executable t8-main
5353 build-depends:
5454 aeson
5555 , base >= 4.7 && < 5
56+ , http-client > 0.4 && < 0.5
5657 , servant == 0.5.*
5758 , servant-client == 0.5.*
5859 , servant-server == 0.5.*
@@ -65,6 +66,7 @@ executable hackage
6566 build-depends:
6667 aeson >= 0.8
6768 , base >=4.7 && < 5
69+ , http-client > 0.4 && < 0.5
6870 , servant == 0.5.*
6971 , servant-client == 0.5.*
7072 , text
servant-examples/tutorial/T8.hs+8−1
@@ -4,8 +4,11 @@
44module T8 where
55
66import Control.Monad.Trans.Except
7+import Network.HTTP.Client (Manager, defaultManagerSettings,
8+ newManager)
79import Servant
810import Servant.Client
11+import System.IO.Unsafe (unsafePerformIO)
912
1013import T3
1114
@@ -19,11 +22,15 @@ hello :: Maybe String -- ^ an optional value for "name"
1922marketing :: ClientInfo -- ^ value for the request body
2023 -> ExceptT ServantError IO Email
2124
22−position :<|> hello :<|> marketing = client api baseUrl
25+position :<|> hello :<|> marketing = client api baseUrl manager
2326
2427baseUrl :: BaseUrl
2528baseUrl = BaseUrl Http "localhost" 8081 ""
2629
30+{-# NOINLINE manager #-}
31+manager :: Manager
32+manager = unsafePerformIO $ newManager defaultManagerSettings
33+
2734queries :: ExceptT ServantError IO (Position, HelloMessage, Email)
2835queries = do
2936 pos <- position 10 10