@@ -6,16 +6,16 @@ module Maestro.Client.Env
66 ) where
77
88import Data.Text (Text )
9- import Data.Text.Encoding (encodeUtf8 )
10- import Network.HTTP.Client (managerModifyRequest , requestHeaders )
11- import Network.HTTP.Client.TLS (newTlsManagerWith , tlsManagerSettings )
9+ import Network.HTTP.Client (newManager )
10+ import Network.HTTP.Client.TLS (tlsManagerSettings )
1211
1312import qualified Servant.Client as Servant
1413
1514type MaestroToken = Text
1615
17- newtype MaestroEnv = MaestroEnv
18- { _maeClientEnv :: Servant. ClientEnv
16+ data MaestroEnv = MaestroEnv
17+ { _maeClientEnv :: ! Servant. ClientEnv
18+ , _maeToken :: ! MaestroToken
1919 }
2020
2121data MaestroNetwork = Mainnet | Preprod
@@ -26,15 +26,11 @@ maestroBaseUrl Mainnet = "https://mainnet.gomaestro-api.org/v0"
2626
2727mkMaestroEnv :: MaestroToken -> MaestroNetwork -> IO MaestroEnv
2828mkMaestroEnv token nid = do
29- clientEnv <- servantClientEnv token $ maestroBaseUrl nid
30- pure $ MaestroEnv {_maeClientEnv = clientEnv}
29+ clientEnv <- servantClientEnv $ maestroBaseUrl nid
30+ pure $ MaestroEnv { _maeClientEnv = clientEnv, _maeToken = token }
3131
32- servantClientEnv :: MaestroToken -> String -> IO Servant. ClientEnv
33- servantClientEnv token url = do
32+ servantClientEnv :: String -> IO Servant. ClientEnv
33+ servantClientEnv url = do
3434 baseUrl <- Servant. parseBaseUrl url
35- manager <- newTlsManagerWith $ tlsManagerSettings {managerModifyRequest = addTokenHeader}
36-
35+ manager <- newManager tlsManagerSettings
3736 pure $ Servant. mkClientEnv manager baseUrl
38-
39- where
40- addTokenHeader req = pure $ req {requestHeaders = [(" api-key" , encodeUtf8 token), (" Content-Type" , " application/json" )]}
0 commit comments