From a555c4e51086e11cd5b9a90d8ed3dab25463ef61 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> Date: Tue, 5 Jan 2021 19:42:50 +0000 Subject: [PATCH] agent store: getSndQueue --- src/Simplex/Messaging/Agent/Store/SQLite.hs | 22 ++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Simplex/Messaging/Agent/Store/SQLite.hs b/src/Simplex/Messaging/Agent/Store/SQLite.hs index cde54e364..5ce9bdd71 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite.hs @@ -154,9 +154,9 @@ getRcvQueue st@SQLiteStore {conn} queueRowId = liftIO $ do DB.queryNamed conn [s| - SELECT server_id, rcv_id, rcv_private_key, snd_id, snd_key, decrypt_key, verify_key, status, ack_mode - FROM receive_queues - WHERE receive_queue_id = :rowId; + SELECT server_id, rcv_id, rcv_private_key, snd_id, snd_key, decrypt_key, verify_key, status, ack_mode + FROM receive_queues + WHERE receive_queue_id = :rowId; |] [":rowId" := queueRowId] case r of @@ -164,6 +164,22 @@ getRcvQueue st@SQLiteStore {conn} queueRowId = liftIO $ do (\srv -> (rcvQueue {server = srv} :: ReceiveQueue)) <$$> getServer st serverId _ -> return (Left SENotFound) +getSndQueue :: MonadUnliftIO m => SQLiteStore -> QueueRowId -> m (Either StoreError SendQueue) +getSndQueue st@SQLiteStore {conn} queueRowId = liftIO $ do + r <- + DB.queryNamed + conn + [s| + SELECT server_id, snd_id, snd_private_key, encrypt_key, sign_key, status, ack_mode + FROM send_queues + WHERE send_queue_id = :rowId; + |] + [":rowId" := queueRowId] + case r of + [Only serverId :. sndQueue] -> + (\srv -> (sndQueue {server = srv} :: SendQueue)) <$$> getServer st serverId + _ -> return (Left SENotFound) + insertRcvQueue :: MonadUnliftIO m => SQLiteStore -> SMPServerId -> ReceiveQueue -> m QueueRowId insertRcvQueue store serverId rcvQueue = insertWithLock