From e575c29d51401c513d636fa727e42f74da1c5998 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Thu, 14 Oct 2021 14:40:54 -0300 Subject: [PATCH] Steal Database#getContacts() from !24 --- .../briarproject/mailbox/core/db/Database.kt | 3 +++ .../mailbox/core/db/JdbcDatabase.kt | 27 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt index 32f4dc15..e108f9da 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt @@ -29,6 +29,9 @@ interface Database : TransactionManager { @Throws(DbException::class) fun getContact(txn: Transaction, id: Int): Contact? + @Throws(DbException::class) + fun getContacts(txn: Transaction): List<Contact> + @Throws(DbException::class) fun removeContact(txn: Transaction, id: Int) diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt index 0a5fdd0b..65126333 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt @@ -488,6 +488,33 @@ abstract class JdbcDatabase(private val dbTypes: DatabaseTypes, private val cloc } } + @Throws(DbException::class) + override fun getContacts(txn: Transaction): List<Contact> { + val contacts = ArrayList<Contact>() + val connection: Connection = txn.unbox() + var ps: PreparedStatement? = null + var rs: ResultSet? = null + try { + val sql = "SELECT contactId, token, inbox, outbox FROM contacts" + ps = connection.prepareStatement(sql) + rs = ps.executeQuery() + while (rs.next()) { + val id = rs.getInt(1) + val token = rs.getString(2) + val inboxId = rs.getString(3) + val outboxId = rs.getString(4) + contacts.add(Contact(id, token, inboxId, outboxId)) + } + rs.close() + ps.close() + return contacts + } catch (e: SQLException) { + tryToClose(rs, LOG) + tryToClose(ps, LOG) + throw DbException(e) + } + } + @Throws(DbException::class) override fun removeContact(txn: Transaction, id: Int) { val connection: Connection = txn.unbox() -- GitLab