From af5bd101cbee69d4263d3a8a72d824cdc5e3d93a Mon Sep 17 00:00:00 2001 From: Efim Poberezkin Date: Fri, 8 Jan 2021 15:51:33 +0400 Subject: [PATCH] agent store: make create connection methods return () --- src/Simplex/Messaging/Agent/Store.hs | 4 ++-- src/Simplex/Messaging/Agent/Store/SQLite.hs | 12 ++++++------ tests/AgentTests/SQLite.hs | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Simplex/Messaging/Agent/Store.hs b/src/Simplex/Messaging/Agent/Store.hs index bd7f52039..4caa177aa 100644 --- a/src/Simplex/Messaging/Agent/Store.hs +++ b/src/Simplex/Messaging/Agent/Store.hs @@ -95,8 +95,8 @@ type SMPServerId = Int64 class Monad m => MonadAgentStore s m where addServer :: s -> SMPServer -> m (Either StoreError SMPServerId) - createRcvConn :: s -> ConnAlias -> ReceiveQueue -> m (Either StoreError (Connection CReceive)) - createSndConn :: s -> ConnAlias -> SendQueue -> m (Either StoreError (Connection CSend)) + createRcvConn :: s -> ConnAlias -> ReceiveQueue -> m (Either StoreError ()) + createSndConn :: s -> ConnAlias -> SendQueue -> m (Either StoreError ()) getConn :: s -> ConnAlias -> m (Either StoreError SomeConn) deleteConn :: s -> ConnAlias -> m (Either StoreError ()) addSndQueue :: s -> ConnAlias -> SendQueue -> m (Either StoreError ()) diff --git a/src/Simplex/Messaging/Agent/Store/SQLite.hs b/src/Simplex/Messaging/Agent/Store/SQLite.hs index 923ddb393..d0e0948ec 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite.hs @@ -297,25 +297,25 @@ deleteConnection store connAlias = do instance MonadUnliftIO m => MonadAgentStore SQLiteStore m where addServer store smpServer = upsertServer store smpServer - createRcvConn :: SQLiteStore -> ConnAlias -> ReceiveQueue -> m (Either StoreError (Connection CReceive)) + createRcvConn :: SQLiteStore -> ConnAlias -> ReceiveQueue -> m (Either StoreError ()) createRcvConn st connAlias rcvQueue = upsertServer st (server (rcvQueue :: ReceiveQueue)) >>= either (return . Left) (fmap Right . addConnection) where addConnection serverId = do qId <- insertRcvQueue st serverId rcvQueue -- TODO test for duplicate connAlias - insertRcvConnection st connAlias qId - return $ ReceiveConnection connAlias rcvQueue + _ <- insertRcvConnection st connAlias qId + return () - createSndConn :: SQLiteStore -> ConnAlias -> SendQueue -> m (Either StoreError (Connection CSend)) + createSndConn :: SQLiteStore -> ConnAlias -> SendQueue -> m (Either StoreError ()) createSndConn st connAlias sndQueue = upsertServer st (server (sndQueue :: SendQueue)) >>= either (return . Left) (fmap Right . addConnection) where addConnection serverId = do qId <- insertSndQueue st serverId sndQueue -- TODO test for duplicate connAlias - insertSndConnection st connAlias qId - return $ SendConnection connAlias sndQueue + _ <- insertSndConnection st connAlias qId + return () -- TODO refactor ito a single query with join, and parse as `Only connAlias :. rcvQueue :. sndQueue` getConn :: SQLiteStore -> ConnAlias -> m (Either StoreError SomeConn) diff --git a/tests/AgentTests/SQLite.hs b/tests/AgentTests/SQLite.hs index 01851e552..777b86b23 100644 --- a/tests/AgentTests/SQLite.hs +++ b/tests/AgentTests/SQLite.hs @@ -46,7 +46,7 @@ testCreateRcvConn = do ackMode = AckMode On } createRcvConn store "conn1" rcvQueue - `shouldReturn` Right (ReceiveConnection "conn1" rcvQueue) + `shouldReturn` Right () getConn store "conn1" `shouldReturn` Right (SomeConn SCReceive $ ReceiveConnection "conn1" rcvQueue) let sndQueue = @@ -78,7 +78,7 @@ testCreateSndConn = do ackMode = AckMode On } createSndConn store "conn1" sndQueue - `shouldReturn` Right (SendConnection "conn1" sndQueue) + `shouldReturn` Right () getConn store "conn1" `shouldReturn` Right (SomeConn SCSend $ SendConnection "conn1" sndQueue) let rcvQueue =