From c90275c492c1de810c0de1b243865d8e22e5fdbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20H=C3=B6rist?= Date: Fri, 22 Feb 2019 21:50:51 +0100 Subject: [PATCH] [omemo] Refactor storeSession() --- omemo/backend/liteaxolotlstore.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/omemo/backend/liteaxolotlstore.py b/omemo/backend/liteaxolotlstore.py index ee11b10..5d98b8d 100644 --- a/omemo/backend/liteaxolotlstore.py +++ b/omemo/backend/liteaxolotlstore.py @@ -296,13 +296,19 @@ class LiteAxolotlStore(AxolotlStore): return self._con.execute(query).fetchall() def storeSession(self, recipientId, deviceId, sessionRecord): - self.deleteSession(recipientId, deviceId) - query = '''INSERT INTO sessions(recipient_id, device_id, record) VALUES(?,?,?)''' - self._con.execute(query, (recipientId, - deviceId, - sessionRecord.serialize())) + try: + self._con.execute(query, (recipientId, + deviceId, + sessionRecord.serialize())) + except sqlite3.IntegrityError: + query = '''UPDATE sessions SET record = ? + WHERE recipient_id = ? AND device_id = ?''' + self._con.execute(query, (sessionRecord.serialize(), + recipientId, + deviceId)) + self._con.commit() def containsSession(self, recipientId, deviceId):