@@ -83,6 +83,7 @@ module Store =
8383 let private contactTable = table'<ContactRow> "contacts"
8484 let private messageTable = table'<MessageRow> "messages"
8585 let private settingsTable = table'<SettingsRow> "settings"
86+ let private outboxTable = table'<OutboxRow> "outbox"
8687
8788 let private appDataDir =
8889 let baseDir =
@@ -265,17 +266,38 @@ module Store =
265266
266267 let enqueueOutbox (recipientHex: string) (envelopeJson: string) =
267268 use conn = openConn ()
268− conn.Execute(
269− "INSERT INTO outbox (RecipientHex, EnvelopeJson, CreatedAt) VALUES (@RecipientHex, @EnvelopeJson, @CreatedAt)",
270− {| RecipientHex = recipientHex; EnvelopeJson = envelopeJson
271− CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() |})
269+ insert {
270+ for o in outboxTable do
271+ value
272+ { Id = 0L
273+ RecipientHex = recipientHex
274+ EnvelopeJson = envelopeJson
275+ CreatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() }
276+ excludeColumn o.Id
277+ }
278+ |> conn.InsertAsync
279+ |> Async.AwaitTask
280+ |> Async.RunSynchronously
272281 |> ignore
273282
274283 let peekOutbox () : OutboxRow option =
275284 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
287+ orderBy o.Id
288+ }
289+ |> conn.SelectAsync<OutboxRow>
290+ |> Async.AwaitTask
291+ |> Async.RunSynchronously
277292 |> Seq.tryHead
278293
279294 let dequeueOutbox (id: int64) =
280295 use conn = openConn ()
281− conn.Execute("DELETE FROM outbox WHERE Id = @Id", {| Id = id |}) |> ignore
296+ delete {
297+ for o in outboxTable do
298+ where (o.Id = id)
299+ }
300+ |> conn.DeleteAsync
301+ |> Async.AwaitTask
302+ |> Async.RunSynchronously
303+ |> ignore