Skip to content

Commit 860ce2b

Browse files
committed
fixup! fixup! fixup! [#25] Creating one connection manager for all BackendEffect actions
1 parent 65c021f commit 860ce2b

3 files changed

Lines changed: 15 additions & 9 deletions

File tree

app/Main.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ import Config (configCodec, Config (..))
2929
import Entry (path, Entry)
3030
import System.Environment (lookupEnv)
3131
import Data.Maybe (fromMaybe)
32-
import Network.HTTP.Client (Manager, defaultManagerSettings, newManager)
32+
import Network.HTTP.Client (defaultManagerSettings, newManager)
3333
import Polysemy.Reader (Reader, runReader)
3434
import Network.HTTP.Client.TLS (tlsManagerSettings)
3535

3636
runBackendIO
37-
:: (Manager, Manager)
38-
-> Sem '[BackendEffect, Error CofferError, Reader (Manager, Manager), Embed IO, Final IO ] a
37+
:: ConnectionManagers
38+
-> Sem '[BackendEffect, Error CofferError, Reader ConnectionManagers, Embed IO, Final IO ] a
3939
-> IO a
4040
runBackendIO managers action =
4141
runBackend action
@@ -75,7 +75,7 @@ main = do
7575
config <- readConfig configPath
7676
defaultManager <- newManager defaultManagerSettings
7777
tlsManager <- newManager tlsManagerSettings
78-
runBackendIO (defaultManager, tlsManager) do
78+
runBackendIO (ConnectionManagers defaultManager tlsManager) do
7979
case someCommand of
8080
SomeCommand cmd@CmdView{} -> do
8181
runCommand config cmd >>= \case

lib/Backend.hs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
module Backend
66
( BackendEffect (..), readSecret, writeSecret, listSecrets, deleteSecret
77
, Backend (..)
8+
, ConnectionManagers (..)
89
, SomeBackend (..)
910
, Effects
1011
)
@@ -23,7 +24,12 @@ import BackendName (BackendName)
2324
import Network.HTTP.Client (Manager)
2425
import Polysemy.Reader (Reader)
2526

26-
type Effects r = (Member (Embed IO) r, Member (Reader (Manager, Manager)) r, Member (Error CofferError) r)
27+
data ConnectionManagers = ConnectionManagers
28+
{ cmDefaultManager :: Manager
29+
, cmTlsManager :: Manager
30+
}
31+
32+
type Effects r = (Member (Embed IO) r, Member (Reader ConnectionManagers) r, Member (Error CofferError) r)
2733

2834
class Show a => Backend a where
2935
_name :: a -> BackendName

lib/Backend/Vault/Kv.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import qualified Entry as E
1111
import qualified Backend.Vault.Kv.Internal as I
1212

1313
import Error (CofferError (..))
14-
import Backend (Backend (..), Effects)
14+
import Backend (Backend (..), Effects, ConnectionManagers (cmDefaultManager, cmTlsManager))
1515

1616
import qualified Data.Text as T
1717
import qualified Data.Text.Encoding as T
@@ -88,12 +88,12 @@ makeLensesWith abbreviatedFields ''CofferSpecials
8888

8989
getEnv :: Effects r => VaultKvBackend -> Sem r ClientEnv
9090
getEnv backend = do
91-
(defaultManager, tlsManager) <- ask
91+
connectionManagers <- ask
9292
case url of
9393
(BaseUrl Http _ _ _) -> do
94-
pure $ mkClientEnv defaultManager url
94+
pure $ mkClientEnv (cmDefaultManager connectionManagers) url
9595
(BaseUrl Https _ _ _) -> do
96-
pure $ mkClientEnv tlsManager url
96+
pure $ mkClientEnv (cmTlsManager connectionManagers) url
9797
where
9898
url = vbAddress backend
9999

0 commit comments

Comments
 (0)