@@ -83,6 +83,7 @@ module Store =
83 let private contactTable = table'<ContactRow> "contacts"
83 let private contactTable = table'<ContactRow> "contacts"
84 let private messageTable = table'<MessageRow> "messages"
84 let private messageTable = table'<MessageRow> "messages"
85 let private settingsTable = table'<SettingsRow> "settings"
85 let private settingsTable = table'<SettingsRow> "settings"
86+ let private outboxTable = table'<OutboxRow> "outbox"
87 let private appDataDir =
88 let private appDataDir =
88 let baseDir =
89 let baseDir =
@@ -265,17 +266,38 @@ module Store =
266 let enqueueOutbox (recipientHex: string) (envelopeJson: string) =
267 let enqueueOutbox (recipientHex: string) (envelopeJson: string) =
267 use conn = openConn ()
268 use conn = openConn ()
268− conn.Execute(
269+ insert {
269− "INSERT INTO outbox (RecipientHex, EnvelopeJson, CreatedAt) VALUES (@RecipientHex, @EnvelopeJson, @CreatedAt)",
270+ for o in outboxTable do
270− {| RecipientHex = recipientHex; EnvelopeJson = envelopeJson
273+ RecipientHex = recipientHex
274+ EnvelopeJson = envelopeJson
271− CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() |})
275+ CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() }
280+ |> Async.RunSynchronously
272 |> ignore
281 |> ignore
274 let peekOutbox () : OutboxRow option =
283 let peekOutbox () : OutboxRow option =
275 use conn = openConn ()
284 use conn = openConn ()
276− conn.Query<OutboxRow>("SELECT Id, RecipientHex, EnvelopeJson, CreatedAt FROM outbox ORDER BY Id LIMIT 1")
285+ select {
286+ for o in outboxTable do
289+ |> conn.SelectAsync<OutboxRow>
291+ |> Async.RunSynchronously
277 |> Seq.tryHead
292 |> Seq.tryHead
279 let dequeueOutbox (id: int64) =
294 let dequeueOutbox (id: int64) =
280 use conn = openConn ()
295 use conn = openConn ()
281− conn.Execute("DELETE FROM outbox WHERE Id = @Id", {| Id = id |}) |> ignore
296+ delete {
297+ for o in outboxTable do
302+ |> Async.RunSynchronously